除非字段是从下拉列表填充的,否则JQuery-清除焦点的字段

Loc*_*ock 2 javascript jquery autocomplete jquery-ui-autocomplete

我有一个文本框,用户放入一些文本,然后会出现一个下拉列表.当用户从下拉列表中选择某些内容时,下拉列表中的文本将替换他们键入的文本.

现在,如果他们没有从下拉列表中选择任何内容,我希望此文本框能够清除.

所以基本上,文本框中唯一可以出现的文本是最终从下拉列表中选择的.我怎么做到这一点?

我试过了:

  jQuery("#" + field).focusout(function() {
    jQuery("#" + field).val("");

  });
Run Code Online (Sandbox Code Playgroud)

但即使他们从下拉列表中选择,这仍然会清除.我会采用什么逻辑来实现这一目标?我可以设置一个变量或从列表中选择时设置为true的变量.我会在聚焦功能上检查这个吗?

JQuery的新手!

bil*_*can 7

使用autocomplete 更改事件,检查是否存在ui(从菜单中选择的项目,如果有的话.否则属性为null),如果它不存在,那么你知道用户没有选择一个autocomplete选项,你可以清空值:

change: function (ev, ui) {
    if (!ui.item) {
        $(this).val('');
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的演示小提琴