我正在使用一个有搜索框的网站,我希望如此,当您按空格键但没有选择搜索文本框时,搜索文本框会获得焦点并将其设置为“#”。文字清除了。我已经完成了,但检查搜索框是否具有焦点是否正常运行。我的代码有什么建议吗?如果按空格键,它会清除搜索框,即使您在搜索框中输入内容也是如此。
document.addEventListener('keydown', function (event) {
if (event.keyCode == 32) {
if ($('#searchTextBox').not(':focus')) {
$("#searchTextBox").focus().select();
}
}
});
答案 0 :(得分:2)
在文档上委派keydown
事件时,您还可以使用event.target
检查源/目标是否为文本框本身。如果事件来自文本字段,则忽略它。
$(document).on('keydown', function (event) {
if (event.which == 32 && event.target.id != 'searchTextBox')
$("#searchTextBox").focus().select();
});
答案 1 :(得分:0)
也许这会起作用
$(document).ready(function(){
$(document).on('keydown',function(event){
if(event.keyCode==32){
if(!$('#search').is(':focus')) {
$('#search').focus().select();
}
}
});
});
素不相识!
答案 2 :(得分:0)
更简单 检查 keyCode,因为 32 用于空格键,您可以使用其代码使用任何其他代码
$(document).on('keydown', function (event) {
if (event.keyCode== 32) {
$("#searchTextBox").focus().select();
}
});