Javascript 如果未执行项目选择,但“自动完成”字段中存在字符串,如何处理这种情况?
我正在使用jQueryUIV1.9。我成功地实现了这个小部件,但是当我不得不处理用户没有从“打开”菜单中选择任何项目,但仍然在相关的“自动完成”字段中键入字母的情况时,我遇到了一些麻烦(也就是说,即使自动完成菜单被隐藏,用户仍继续键入字母,因为该菜单中不存在与输入名称相同的项目) 在这种情况下(当未执行项目选择,但“自动完成”字段中存在字符串时),我想提醒用户,他/她没有选择现有对象,而是在键入自定义对象。我如何才能做到这一点Javascript 如果未执行项目选择,但“自动完成”字段中存在字符串,如何处理这种情况?,javascript,jquery,jquery-ui,autocomplete,jquery-autocomplete,Javascript,Jquery,Jquery Ui,Autocomplete,Jquery Autocomplete,我正在使用jQueryUIV1.9。我成功地实现了这个小部件,但是当我不得不处理用户没有从“打开”菜单中选择任何项目,但仍然在相关的“自动完成”字段中键入字母的情况时,我遇到了一些麻烦(也就是说,即使自动完成菜单被隐藏,用户仍继续键入字母,因为该菜单中不存在与输入名称相同的项目) 在这种情况下(当未执行项目选择,但“自动完成”字段中存在字符串时),我想提醒用户,他/她没有选择现有对象,而是在键入自定义对象。我如何才能做到这一点 注意:实际上,我试图强制用户选择一个现有项目,或者,如果没有选择,
注意:实际上,我试图强制用户选择一个现有项目,或者,如果没有选择,则提示用户创建一个新项目。您可以为autocomplete插件的更改事件设置一个回调函数,在该函数中,您应该能够检查是否选择了一个项目:
$( "#autocomplete" ).autocomplete({
change: function(e,ui){
if(ui.item === null)
alert('No item has been selected')
}
});
更新:
若要在输入失去焦点之前触发更改事件,可以使用以下代码,在按键事件时触发它:
$( "#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()});
您的代码似乎按预期工作,但我能做些什么才能使其更“响应”?也就是说(可能通过使用一些jQuery UI功能),我如何在“实时”中检查
null
条件并相应地触发警报?我知道了,但我打开了一个警报,因为我遇到了一些相关问题。