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();
    }
});

好的,这就是一切的设置方式。

我有一个 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>

然后,通过第三方创建的自定义内容页面显示在第二个母版页中,并带有以下代码:

<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使用asp:Panel. 但是,由于 中的自定义消息而创建了第三个文本框和搜索按钮,Tree.Master并且其中不能包含任何ASP内容,只有HTML.

我的问题是,我如何处理这个 Enter 按键事件并让它使用第三个文本框中的值而不是第一个或第二个文本框中的值进行搜索。

我已经尝试过了,但是没有用。不过那里并没有太多惊喜。

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 回答