我想将输入字段集中在文档的KeyDown事件中,如果它还没有被聚焦的话。 如果已经集中注意力,那么应该没有任何事情发生。如果它还没有聚焦,则删除文本内容,并将按下的键(如果其字符代码在特定范围内)添加。
我目前的代码仅适用于最新的浏览器,甚至不适用于Firefox 3.0 ......
$(document).keydown(function (e) {
var code = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if (code < 33 || code > 256) {
return;
}
// Check if the text input is focused
if ($("*:focus").attr("id") == "searchString") {
// Maybe more to come here ...
}
else {
// Clear content and focus
$("#searchString")
.val("")
.focus();
}
});
答案 0 :(得分:1)
您可以使用document.activeElement
并检查id
属性,如下所示:
$(document).keydown(function (e) {
//e.which is normalized by jQuery already
if (e.which < 33 || e.which > 256) return;
if (document.activeElement && document.activeElement.id == "searchString") {
//do stuff
}
else {
$("#searchString").val("").focus();
}
});
此外,您可以切换到event.which
property后的it's already normalized by jQuery internally。