Jquery UI自动完成输入 - 如何在更改时检查输入是否为空?

时间:2011-07-27 21:47:03

标签: javascript jquery jquery-ui events autocomplete

我的页面上有一个Jquery UI自动完成字段,当输入变空时我需要做一些事情(即用户输入内容,然后删除所有内容)。

无论他们在最初生成的自动填充结果中输入的是什么,都必须触发此事件。

如果没有输入类型的自动填充结果,则显示一个按钮;如果有结果或输入为空,则删除它。

UPDATE 我试过这个......

$('#employeeAutocomplete').change(function() {
     alert("eventFired");
     if($( "#employeeAutocomplete" ).val() == ''){
         $('#createEmployeeBtn').hide();
     }
});

警报未显示....

谢谢, 丹尼

10 个答案:

答案 0 :(得分:6)

http://forum.jquery.com/topic/autocomplete-and-change-event

关于同样的问题:

  

我发现了变化:确实有效,但只有在输入失去焦点时才会有效。

     

我实现的解决方案,以获得我想要的效果是实现我自己的检查作为源:函数的一部分。我将minLength:设置为0,如果长度小于2,我加载了我的默认显示数据。

答案 1 :(得分:1)

看看这个插件

http://www.zurb.com/playground/jquery-text-change-custom-event

它是真正的textchange事件的更接近的处理程序

答案 2 :(得分:1)

我知道这篇文章真的很老但我也在尝试同样的思考,这里的答案并不让我高兴。

所以对于我自己,我对jquery的模糊事件进行了空值测试。

$('.input').focus(function() { $(this).autocomplete({ // autocomplete code here }) }).blur(function() { if($(this).val() == "") { } });

答案 3 :(得分:0)

希望这可以帮助你:) .change() - jQuery API

答案 4 :(得分:0)

答案 5 :(得分:0)

$('#employeeAutocomplete').change(function() {
     alert("eventFired");
     if(this.value == ''){
         $('#createEmployeeBtn').hide();
     }
});

答案 6 :(得分:0)

jquery ui的autocomplete有自己的更改事件,你试过吗?

$( ".selector" ).autocomplete({
   change: function(event, ui) { ... }
});

http://jqueryui.com/demos/autocomplete/#event-change

答案 7 :(得分:0)

我用自动完成关闭事件解决了这个问题! 结果列表为空时关闭触发。在我的情况下,这与空输入字段相对应。

http://jqueryui.com/demos/autocomplete/#event-close

答案 8 :(得分:0)

好的人。以下绝对有效,并且非常简单&优雅的解决方案,需要几行代码。

100%保证可以工作。

@Milox已经提到过:

http://zurb.com/playground/jquery-text-change-custom-event

这个jQuery插件很小。一旦下载/复制它&链接到' js'文件,使用以下内容:

jQuery('#input').bind('notext',function () {
    console.log('text field is empty');
});

还有其他配置,但这就是我所需要的。繁荣。排序

答案 9 :(得分:0)

非常老的问题,但是我认为我找到了一个对我有用的解决方案,可能会对他人有所帮助。因此,使它对我有用而又没有在autocomplete周围跳舞的原因,似乎没有changekeypress所存在的缺陷,是keyup

只需在keyup块旁边添加autocomplete事件处理程序,就可以触发事件,而不管失去焦点或更改字段值,即使清除了该值也是如此。这使该功能在我能想到的所有情况下都能正常工作。这是代码:

$('#employeeAutocomplete').keyup(function() {
  if($( "#employeeAutocomplete" ).val() === '') {
     $('#createEmployeeBtn').hide();
  }
});
相关问题