Jquery window.location不重定向但刷新页面

时间:2013-04-29 16:23:45

标签: javascript jquery

我有以下Jquery片段

// General search
$j(".search").each(function () {
    var baseURL = "/search.aspx?c=Entire%20Site&q=";
    var searchBox = $j(this);
    searchBox.find("input").keypress(function (e) {
        if (e.keyCode == 13) {
            submitSearchValueFromTextBox(searchBox, baseURL);
        }
    });
});



submitSearchValueFromTextBox = function(searchBox, baseURL) {
        window.location.href = baseURL + escape(searchBox.find("input").val());
    };

输入HTML

<span class="searchBox">
              <span>
                <input type="text" name="searchBoxHeader" id="searchBoxHeader" value="<%= SearchLabel %>" />
              </span>
            </span>
            <span class="searchBtn">
              <a href="#" class="btnSearchTop">
                <img src="/images/search_btn.gif" name="submitHeader" id="submitHeader"/>
              </a>
            </span>

我正在测试的是当用户按下回车键将用户带到我的搜索页面时,我发现代码正常工作,因为它找到了正确的keyCode,并且在获取重定向功能时只是刷新页面而不是比去吧。

有什么想法吗?

编辑它可以正常工作,点击它不起作用的回车键

    searchBox.find("a").click(function () {
        submitSearchValueFromTextBox(searchBox, baseURL);
    });

2 个答案:

答案 0 :(得分:0)

如果我正在读代码,你的baseURL定义需要在keypress()匿名函数中,或者它需要是全局的。你目前在each()匿名函数中有它,但在keypress()之外,它只为每个()内的匿名函数定义baseURL,因此keypress()内的匿名函数无法访问它。

答案 1 :(得分:0)

如果搜索框出现在<form>标记内,则按Enter键即可提交表单。您需要阻止表单提交。