jquery ui自动完成更改事件

我正在尝试使Jquery自动完成只允许选择项目。 我使用change事件来检测:

change: function (event, ui) { if (ui.item) { $(this).val(''); } } 

它在IE中运行良好。 但是在chrome ui.item中总是为null,即使从列表中选择了该项。

然后我尝试了不同的方法。 而是检查事件类型:

  if (event.originalEvent.type != "autocompletechange") { $(this).val(''); } 

它在Chrome中运行良好,但在IE中,事件是“模糊”。

有适合两种浏览器的解决方案吗?

谢谢,Yuval。

我有同样的问题,不得不解决它。 似乎没有解决这个问题。

jQuery的自动完成仅在select事件上发送eventui对象。 在change事件时,遗憾的是没有发送任何对象。

这就是我所做的,似乎工作顺利:

 $('#autocomplete-input').autocomplete({ source : fields, // fields is an array of objects with field_name and field_id change : function() { var input = $('#autocomplete-input').val().trim(); if ( input.length > 0 ) { var field_found = false; $.each( fields, function( index, value ) { if ( input == fields[index]['field_name'] ) field_found = fields[index]['field_id']; }); if ( field_found ) { $('#field-selected-hidden').val( field_found ); } else { $('#field-selected-hidden').val(''); } } else { $('#field-selected-hidden').val(''); } } }); 

它基本上做的是:如果输入字段改变值,它搜索预设自动完成字段(源)的数组。 如果它的值等于新字段值更改的值,则将隐藏的表单字段设置为字段的id(或者要捕获的任何字段)。

希望能帮助到你…