我正在尝试选择当用户按下Return键时,会触发搜索按钮。 目前只能在搜索按钮上按下,但有时用户可能会在搜索条目后按返回键。
$(document).ready(function() {
$('#search-button').keydown(function(event){
if (event.keyCode==13) {
Trackster.searchTracksByTitle($("#search-input").val());
}
});
$("#search-button").click(function(){
Trackster.searchTracksByTitle($("#search-input").val());
});
});
有谁知道我在这里做错了什么?我仍然无法使用按返回来触发搜索。
答案 0 :(得分:1)
如果您有搜索输入和搜索按钮,理想的做法是将它们包裹在form
标记中。
<form id="search-form">
<input type="text" id="search-input" ...>
<button type="submit" id="search-button" ...>Search</button>
</form>
请注意,type
设置为submit
。它使按钮充当表单的提交按钮。现在,您必须收听表单的submit
事件。 return 键绑定免费提供。另外,您无需单独收听keydown
和click
事件。
$(document).ready(function() {
$('#search-form').submit(function(event) {
event.preventDefault();
Trackster.searchTracksByTitle($("#search-input").val());
})
});
您会看到搜索在以下情况下有效:
我相信这可以解决您的问题。
答案 1 :(得分:0)
您已将keydown
事件附加在search-button
上,但我认为已附加在search-input
$(document).ready(function() {
$('#search-input').keydown(function(event) {
if (event.keyCode === 13) {
Trackster.searchTracksByTitle($(this).val());
}
});
$("#search-button").click(function() {
Trackster.searchTracksByTitle($("#search-input").val());
});
});
答案 2 :(得分:0)
这应该有效:
$(document).ready(function() {
var $btn = $('#search-button');
var $inElement = $btn.prev('input');
$inElement.keydown(function(event){
if (event.keyCode==13) {
Trackster.searchTracksByTitle($("#search-input").val());
}
});
$btn.click(function(){
Trackster.searchTracksByTitle($("#search-input").val());
});
});