5

----- コメントからの回答に対する新しい Jquery -----

function search2() {
    var urlString = 'Controls/LookUp.aspx?zipcode=' + $('#MultiSearch2').val();

    window.location = urlString;
    return false;
}

jQuery('#MultiSearch2').bind("keypress", function (e) {

    if (e.keyCode == 13) {
        e.preventDefault();
        search2();
    }
});

OK、これがすべての設定方法です。

次のコードを含む main.master ページがあります。

<asp:Panel ID="PanelMainMaster" runat="server" DefaultButton="searchBTN">
    <div id="HomeQuickSearch">
        <input id="multiSearchStyle" type="text" placeholder ="search our store" />
        <asp:Button OnClientClick="return searchZone()" runat="server" Text="Go" ID="searchBTN" />     
    </div>
</asp:Panel>

次のコードを含む別のマスター ページ (ツリー) があります。

<asp:Panel ID="Panel2" runat="server" DefaultButton="submit">
    <form name="ZipCodeForm" action="/Search.cfm" method="get">
        <div style="margin-bottom: .25em">Search for a tree:</div>
        <input type="text" name="MultiSearch" id="MultiSearch" size="15" maxlength="50" style="margin-bottom: .25em">
        <asp:Button Text="Search" runat="server" ID="submit" OnClientClick="return search()" />
    </form>
</asp:Panel>

次に、次のコードで 2 番目のマスター ページ内に表示される、サード パーティによって作成されたカスタム コンテンツ ページがあります。

<div id="TreeStyle">
    <Z:CustomMessage ID="Tree1" MessageKey="TreeHero" runat="server" />
</div>

カスタム メッセージからレンダリングされた HTML:

<input id="MultiSearch2" type="text" name="MultiSearch2" maxlength="50">
<button id="submit2" name="submit2" type="submit">Search</button>

ページは次のフローでレンダリングされます。

  1. Main.Master
  2. ツリーマスター
  3. Tree.Master 内のカスタム メッセージ

DefaultButton最初の 2 つの入力テキスト ボックスは、 のオプションを使用して Enter ボタン イベントのクリックを処理しますasp:Panel。ただし、 内のカスタム メッセージのために作成された 3 番目のテキスト ボックスと検索ボタンがあり、その中にTree.Master何も含めることはできません。ASPHTML

私の質問は、この Enter キープレス イベントをどのように処理し、最初または 2 番目の値ではなく 3 番目のテキスト ボックスの値で検索するかです。

私はこれを試しましたが、うまくいきませんでした。しかし、それほど驚くことではありません。

function search2() {
    var urlString = 'Controls/LookUp.aspx?zipcode=' + $('#MultiSearch2').val();

    window.location = urlString;
    return false;
}

jQuery('#MultiSearch2').on("keypress", function (e) {
    if (e.keyCode == 13) {
        search2();
    }
});

以前は気付かなかったjqueryエラーも発生しています:object [object Object] has no method 'on'

4

2 に答える 2

9

あなたはこれを行うことができます:

jQuery('#MultiSearch2').on("keypress", function (e) {            

    if (e.keyCode == 13) {

        // Cancel the default action on keypress event
        e.preventDefault(); 

        search2();
    }
});
于 2013-07-19T20:10:07.907 に答える
2

----- コメントからの回答に対する新しい Jquery -----

function search2() {
    var urlString = 'Controls/LookUp.aspx?zipcode=' + $('#MultiSearch2').val();

    window.location = urlString;
    return false;
}

jQuery('#MultiSearch2').bind("keypress", function (e) {

    if (e.keyCode == 13) {
        e.preventDefault();
        search2();
    }
});
于 2013-07-19T20:06:56.973 に答える