繁体   English   中英

在文本框上按Enter键时会触发Onclient Click事件

[英]Onclient Click Event Fires when Enter Key Press on TextBox

我在母版页上有一个搜索文本框,我希望该用户写下它的单词,然后按Enter键应该开始搜索。 所以onkeypress事件我调用了一个函数,该函数接受一个搜索词并将其传递给搜索页面。这是我的文本框。

<asp:TextBox runat="server" ID="searcht" onkeypress='validateSId($(this),(event))'></asp:TextBox>

这是我的职责

function validateSId(txt, e) {
    if (e.keyCode == 13) {
        var str = txt.val();
        window.location = "search.aspx?data=" + str;
    }
}

我还有另一个页面demo.aspx,它继承了母版页面,其中包含一个提交按钮和用于文本框的Java脚本验证功能,该功能在On Client Click事件上触发。这是按钮。

 <asp:Button ID="btnSubmit" runat="server" Text="Submit"
 OnClientClick="return DemoCheckFields()"OnClick="btnSubmit_Click" CssClass="btn-red-big btn-big" TabIndex="22" 

现在的问题是,当我在搜索文本框上按Enter时,它首先执行DemoCheckFields函数,然后执行validateSId()。 我希望从搜索文本框中按Enter键时,它应该仅执行validateSId()。

尝试此操作,onkeypress上的Handle按钮,如果输入了已按下的按钮,则返回false;

<asp:Button ID="btnSubmit" onkeypress="if (event.keyCode == 13)return false;"></asp:Button >

我终于通过使用event.preventDefault()解决了这个问题。 修改的功能为

function validateSId(txt, e) {
            if (e.keyCode == 13) {                    
                var str = txt.val();
                e.preventDefault();
                window.location = "search.aspx?data=" + str;
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM