Javascript 按键时使用jQuery取消聚焦文本框
我有一个文本框,当您在文本框外单击时,它会显示警报。如果用户按Enter键,我也会尝试显示警报。以下是我所拥有的:Javascript 按键时使用jQuery取消聚焦文本框,javascript,jquery,Javascript,Jquery,我有一个文本框,当您在文本框外单击时,它会显示警报。如果用户按Enter键,我也会尝试显示警报。以下是我所拥有的: <input id="txtInput" type="text" onblur="alert('Hello');" /> <script type="text/javascript"> $(document).ready(function () { $("#txtInput").keyup(function (event) {
<input id="txtInput" type="text" onblur="alert('Hello');" />
<script type="text/javascript">
$(document).ready(function () {
$("#txtInput").keyup(function (event) {
if (event.keyCode == 13) {
$(this).blur();
return false;
}
});
});
$(文档).ready(函数(){
$(“#txtInput”).keyup(函数(事件){
如果(event.keyCode==13){
$(this.blur();
返回false;
}
});
});
如果我在文本框内单击,然后在文本框外单击,则警报将正确显示
但是如果我在文本框内并按Enter键,它会显示警报-当我解除警报时,会显示另一个警报(我假设是因为文本框上正在调用onblur)
为什么不调用
$(this).blur()
从文本框中移除焦点?或者有更好的方法吗?我不能告诉您为什么这样做,但是如果您从HTML中删除onblur
事件并将其放入js中,它就会起作用
[编辑]清理代码以使用链接,而不是使用选择器两次。下面是一个示例。在OSX上的Chrome中,它可以正常工作。我没有遇到你提到的问题。你在测试什么浏览器和jquery的哪个版本??您的代码在chrome/jquery 1.9.1Chrome version 25和jquery 1.8.3上运行良好。那么,在1.8.3中,我看到了这种行为。请参阅下面的答案。
$("#txtInput").keyup(function (event) {
if (event.keyCode == 13) {
$(this).blur();
return false;
}
}).blur(function(){
alert('Hello');
});