0

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

有什么建议么?

4

4 回答 4

2

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

// check if autocomplete has been cleared
$("#text_input").focusout(function() {
    if ($("#text_input").val() == '') {
        $('#id_input').val('');
    }
});
于 2013-01-18T15:20:32.697 回答
0

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

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

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

于 2012-12-17T22:10:08.550 回答
0

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

这在几乎所有浏览器中都可以正常工作。IE Mobile 9 要求您在读取字段值之前设置一个时间延迟,因为字段内容在 yeyup 事件之后才会更新。

版主注意:愚蠢的网站让我等了 3 分钟才输入这个答案——等待并不会或多或少地让你知道。

于 2012-12-17T22:12:07.860 回答
0

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

input.on('keyup', function(){
    if(! $('a#ui-active-menuitem').length ) ...
});
于 2013-01-18T13:54:35.927 回答