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
事件上发送event
和ui
对象。 在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(或者要捕获的任何字段)。
希望能帮助到你…