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