[英]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.