在 JQuery 对话框文本框中输入单击不会触发 __doPostBack

Posted

技术标签:

【中文标题】在 JQuery 对话框文本框中输入单击不会触发 __doPostBack【英文标题】:Enter Click in JQuery dialog textbox does not trigger __doPostBack 【发布时间】:2021-07-08 19:01:59 【问题描述】:

我在 JQuery 弹出对话框中有一个文本框。 Keypress 文本框上的事件运行良好,仅捕获输入键。我想在文本框的输入键上触发__doPostBack,但未能成功。

以下是 JQuery 对话框

asp.net

<div id="popupdiv"   title="Basic modal dialog" class="abc" style="display: none">Enter Password        
<asp:TextBox ID="pass" onkeypress="return chkDiscountEnter(this);" ClientIDMode="static"   runat="server" CssClass="textcss" ></asp:TextBox> 

<asp:Button ID="btnDiscountAtEnd" runat="server" style="display:none;" Text="Button" OnClick="btnDiscountAtEnd_Click" />

JQuery 在文本框的按键事件中捕捉回车键

 <script>
        function chkDiscountEnter(e) 
            $(document).keypress(function (e) 
                if ($("#pass").hasClass('textcss') && (e.keycode == 13)) 

                   __doPostBack('<%=btnDiscountAtEnd.UniqueID%>', "");
                    //alert("hi");
    
                    return true;
                
            );
        
 </script>

【问题讨论】:

【参考方案1】:

这种做回发意味着在页面加载事件中,你必须拿起传递的值——它不能直接调用你的按钮代码存根。

但是,无论如何,您肯定可以触发表单上该按钮的 .click 方法/事件 - 从而获得相同的结果。

我会为该按钮添加 clientID 模式,但假设你有这个:

<asp:Button ID="btnDiscountAtEnd" runat="server" style="display:none;" 
             Text="Button" OnClick="btnDiscountAtEnd_Click" ClientIDMode="Static" />

所以,现在在你的 js 中,这样做:

 $('#btnDiscountAtEnd').click();

【讨论】:

以上是关于在 JQuery 对话框文本框中输入单击不会触发 __doPostBack的主要内容,如果未能解决你的问题,请参考以下文章

如果我单击对话框中的项目(ListBox、CheckBox 等),则不会触发 OnLButtonDown(),但如果单击背景或静态文本,它会触发

jQuery - 更改 iframe src 时仅在第二次单击时触发

在 JS/jQuery 中触发 keypress/keydown/keyup 事件?

使用 jQuery 在搜索框中输入动画文本

是否可以在输入单击和按钮上触发 jQuery datepicker 元素?

由于文本框失去焦点,按钮需要单击两次