我试图让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。答案 0 :(得分:0)
我有同样的问题,不得不解决它。似乎没有解决这个问题。
jQuery的自动完成仅在event
事件上发送ui
和select
个对象。在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(或您要捕获的任何字段。)
希望它有所帮助...