有没有办法做到这一点?基本上,我想检测用户何时清除该字段,因为还有其他字段依赖于此。我使用了一个更改事件,但是当我清除输入框时它没有触发。
有什么建议么?
有没有办法做到这一点?基本上,我想检测用户何时清除该字段,因为还有其他字段依赖于此。我使用了一个更改事件,但是当我清除输入框时它没有触发。
有什么建议么?
您可以使用focusout检查text_input是否已被清除(然后清除id_input)
// check if autocomplete has been cleared
$("#text_input").focusout(function() {
if ($("#text_input").val() == '') {
$('#id_input').val('');
}
});
我建议使用几个不同的处理程序来确保您抓住用户清除字段
$(document).on('keyup, keydown, blur, change' , '.myTxtBox', function(){
var text = $(this).val();
if text = "" {}
});
如果你想确保用户没有突出显示然后删除,或者按下,删除,退格等,一些键更容易在 keyup 和一些 key down 上检测到。你需要几个不同的处理程序
如何将函数绑定到 jQuery keyup 事件,并在该函数中检查字段 .val() 的长度?
这在几乎所有浏览器中都可以正常工作。IE Mobile 9 要求您在读取字段值之前设置一个时间延迟,因为字段内容在 yeyup 事件之后才会更新。
版主注意:愚蠢的网站让我等了 3 分钟才输入这个答案——等待并不会或多或少地让你知道。
我使用 Mike 建议的类似方法,但检查长度a#ui-active-menuitem
而不是val()
keyup 事件,input[type="text"]
因为也有可能没有选择结果并且输入不为空。(例如:如果用户通过按向上箭头键模糊列表结果)
input.on('keyup', function(){
if(! $('a#ui-active-menuitem').length ) ...
});