1

我正在使用 jQuery UI v1.9。我成功实现了jQuery UI 自动完成小部件,但是当我必须处理用户没有从打开的菜单中选择任何项目但仍继续在相关的自动完成字段中键入字母的情况时我遇到了一些麻烦(即,当即使隐藏了自动完成菜单,用户仍继续键入字母,因为该菜单中不存在名称与输入名称相同的项目)。

在这种情况下(当没有执行项目选择但自动完成字段中存在字符串时),我想提醒用户他/她没有选择现有对象但他/她正在输入自定义对象。我怎样才能做到这一点?


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

4

1 回答 1

2

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

$( "#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()});
于 2012-11-19T15:08:35.510 回答