Jquery ui autocomplete - 如何判断字段是否已被清除

时间:2012-12-17 22:04:12

标签: jquery-ui jquery-ui-autocomplete

有办法吗?基本上,我想检测用户何时清除该字段,因为还有其他字段依赖于该字段。 我使用了一个更改事件,但是当我清除输入框时它没有触发。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

您可以使用 focusout 检查 text_input 是否已被清除(然后清除 id_input

// check if autocomplete has been cleared
$("#text_input").focusout(function() {
    if ($("#text_input").val() == '') {
        $('#id_input').val('');
    }
});

答案 1 :(得分:0)

我建议使用几个不同的处理程序来确保抓住用户清除字段

$(document).on('keyup, keydown, blur, change' , '.myTxtBox', function(){
var text =  $(this).val();
if text = "" {}    
});

如果你想确保用户没有突出显示然后删除,或者按,删除,退格等,那么一些键在键盘上更容易检测而一些键在键盘上更容易被检测到。你需要几个不同的处理程序

答案 2 :(得分:0)

如何将函数绑定到jQuery keyup事件,并在该函数中检查字段的.val()的长度?

这几乎适用于所有浏览器。 IE Mobile 9要求您在读取字段值之前设置时间延迟,因为字段内容直到yeyup事件之后才会更新。

主持人注意:愚蠢的网站让我等了3分钟才能输入这个答案 - 等待不会让你知道更多或更少。

答案 3 :(得分:0)

我使用了Mike建议的类似方法,但在a#ui-active-menuitem的keyup事件上检查val()而不是input[type="text"]的长度,因为它也可能没有选择结果且输入不为空。 (例如:如果用户通过按向上箭头键模糊列表结果)

input.on('keyup', function(){
    if(! $('a#ui-active-menuitem').length ) ...
});