JQuery:当文本框失焦时,如何隐藏 DIV?

Posted

技术标签:

【中文标题】JQuery:当文本框失焦时,如何隐藏 DIV?【英文标题】:JQuery: How do I hide a DIV when textbox is out of focus? 【发布时间】:2009-11-30 16:53:44 【问题描述】:

这是我的代码:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtInsertComments" CssClass="expanding" runat="server" AutoPostBack="false" TextMode="MultiLine"></asp:TextBox>
    </div>
        <div id="commands">
            <table cellpadding="0" cellspacing="0"  id="tblCommands">
                <tr>
                    <td style="width: 50%; text-align: center;">
                        <asp:LinkButton ID="lnbInsertRes" runat="server" CommandName="Insert" Font-Underline="false">Insert</asp:LinkButton>
                    </td>
                    <td style="width: 50%; text-align: center;">
                        <asp:LinkButton ID="lnbCancelRes" runat="server" CommandName="Cancel" Font-Underline="false">Cancel</asp:LinkButton>
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>
    <script type="text/javascript">
        $(function()
        
            $("#commands").hide("normal");

            $("textarea[id$=txtInsertComments]").focus(function()
            
                $("#commands").show("normal");
            );

        );
    </script>
</html>

首先,当这个页面被加载时,div #command 被加载得非常快,然后就消失了。我需要 div 保持隐藏,直到文本框 txtInsertComments 控件被单击或获得焦点。

其次,当用户点击文本框 txtInsertComments 或者文本框失去焦点时,div #command 仍然存在并且没有隐藏。

感谢任何帮助。

【问题讨论】:

【参考方案1】:

您可以使用 CSS 隐藏#command DIV,直到您想显示它:

<div id="commands" style="display:none">

然后使用模糊/聚焦显示/隐藏#commands DIV:

$('#txtInsertComments').blur(function() 
    $("#commands").hide()
).focus(function() 
    $("#commands").show()
);

【讨论】:

【参考方案2】:

最初在#commands 上设置display:none

<div id="commands" style="display:none">....

为了失去焦点,只需使用模糊事件:

$( el ).blur( function()... );

【讨论】:

【参考方案3】:
$(document).ready(function() 
    $('#<%=txtInsertComments.ClientID%>').blur(function() 
        $("#commands").hide() );
    $('#<%=txtInsertComments.ClientID%>').focus(function() 
        $("#commands").show() );
);

【讨论】:

好的,你们向我展示的代码适用于基本的 asp.net 页面。有没有人有使用 jQuery 进行嵌套 ListView 控件的经验?同样的 jQuery 不适用于嵌套的 ListView 控件。

以上是关于JQuery:当文本框失焦时,如何隐藏 DIV?的主要内容,如果未能解决你的问题,请参考以下文章

IOS的输入框失焦滚动问题

Html 文本区域占位符

ios软键盘弹出再收起,页面布局错乱问题解决

vue如何获取输入框失焦绑定的值?

JS事件 失焦事件(onblur)onblur事件与onfocus是相对事件,当光标离开当前获得聚焦对象的时候,触发onblur事件,同时执行被调用的程序。

react native 隐藏键盘 TextInput失去焦点