如何处理未执行项目选择但自动填充字段中存在字符串的情况?

我正在使用jQuery UI v1.9。 我成功实现了jQuery UI自动完成小部件,但是当我不得不处理用户没有从打开菜单中选择任何项目但仍继续在相关自动填充字段中键入字母(即,即使隐藏了自动完成菜单,用户也会继续输入字母,因为该菜单中不存在名称为输入名称的项目。

在这种情况下(当没有执行项目选择但自动填充字段中存在字符串时),我想提醒用户他/她没有选择现有对象但是他/她正在键入自定义对象。 我该怎么做?


注意 :实际上,我试图强制用户选择现有项目,或者如果未选择,则提示他/她创建新项目。

您可以为自动完成插件的更改事件设置回调函数,您可以在其中检查是否已选择项目:

$( "#autocomplete" ).autocomplete({ change: function(e,ui){ if(ui.item === null) alert('No item has been selected') } }); 

更新:

如果要在输入失去焦点之前触发更改事件,可以使用以下代码,在keypress事件上触发它:

 $( "#autocomplete" ).autocomplete({ change: function(e,ui){ if(!ui || ui.item === null) console.log('No item has been selected') } }).on('keypress',function(){$(this).autocomplete('option','change').call()});