簡體   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