0

マスターページに検索テキストボックスがあり、ユーザーがその単語を書き、エンターキーを押すと検索を開始する必要があります。したがって、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があり、1つの送信ボタンと、クライアントクリックイベントで発生するテキストボックスのJavaスクリプト検証関数が含まれています。ここにボタンがあります。

 <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()のみを実行する必要があります。

4

2 に答える 2

1

event.preventDefault(); を使用して、最終的にこの問題を解決しました。変更された関数は

function validateSId(txt, e) {
            if (e.keyCode == 13) {                    
                var str = txt.val();
                e.preventDefault();
                window.location = "search.aspx?data=" + str;
            }
        }
于 2014-07-11T06:50:54.633 に答える
0

これを試してください。onkeypress でボタンを処理します。押されたボタンがエンターの場合は false を返します。

<asp:Button ID="btnSubmit" onkeypress="if (event.keyCode == 13)return false;"></asp:Button >
于 2014-07-10T07:09:31.420 に答える