我正在使用e.which的jquery来按下ENTER来运行一个函数,但我希望只有在特定的输入字段被聚焦时(光标闪烁的地方)才会调用此函数。
我当前的jquery函数。
$(document).keyup(function(e) {
if (e.which == 13) {
var page = $("#userpage").val();
if(page > 0) {
$("#search").click();
} else {
$('.save').click();
}
}
});
我希望 $(“#search”)。click(); 只有在 #search_text 专注或有一些输入时才会被调用,因为我有几个输入字段和用户倾向于按Enter键,然后在Enter上调用此函数。
谢谢。
答案 0 :(得分:9)
我会将事件监听器附加到该特定的输入元素:
$('#search_text').keyup(function(e) {
if (e.which == 13) {
// do it
}
});
答案 1 :(得分:1)
只需在第二个 if 语句中将此行添加到您的函数中:
$('#search_text').focus(function()
答案 2 :(得分:0)
为#search_text元素绑定事件,而不是整个文档。这样它只会在元素具有焦点时触发。
答案 3 :(得分:0)
当我们将绑定应用于 $(document)
时,当文档具有 focus
时发生绑定。我们可以在这里使用相同的东西。通过在键绑定中使用 $(#search-text)
,我们可以使键绑定仅在 #search-text
获得焦点时触发。
$(#search-text).keyup(function(e) {
if (e.which == 13) {
var page = $("#userpage").val();
if(page > 0) {
$("#search").click();
} else {
$('.save').click();
}
}
});
答案 4 :(得分:-1)
您还需要添加:e.preventDefault()
;
$('document').keyup(function(e) {
if (e.keyCode == '13') {
e.preventDefault();
var page = $("#userpage").val();
}
});