我有以下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);
});
答案 0 :(得分:0)
如果我正在读代码,你的baseURL定义需要在keypress()匿名函数中,或者它需要是全局的。你目前在each()匿名函数中有它,但在keypress()之外,它只为每个()内的匿名函数定义baseURL,因此keypress()内的匿名函数无法访问它。
答案 1 :(得分:0)
如果搜索框出现在<form>
标记内,则按Enter键即可提交表单。您需要阻止表单提交。