需要选定值的jquery自动完成字段

时间:2013-07-15 00:35:24

标签: jquery field user-input jquery-autocomplete clear

我需要用户在字段中键入国家/地区,但可以通过各种方式命名国家/地区(例如:“摩尔多瓦”,“摩尔多瓦共和国”,“摩尔多瓦共和国”......)。

这可能会立即导致混乱。 所以我决定将用户输入与“官方名称”数组进行比较,并使用jQuery自动完成来解决这个问题。

现在,如果用户输入“摩尔多瓦”,会弹出一个选择框,让他选择正确的语法。

但没有什么可以阻止他单独使用“摩尔多瓦”,因为自动完成是一个建议用户可以通过不点击它来绕过。

我不想那样,因为它最终也会导致混乱,所以我搜索并找到了解决方案:

jquery autocomplete field that REQUIRES a selected value?

它看起来像这样:

$("#country").autocomplete(
{
   source: mycountries 
   change: function(event, ui) 
   {
       if (!ui.item) 
       {
           $("#country").val("");
       }
   }
});

这很好,因为如果用户没有选择自动填充建议,它会清除该字段,这样,用户就无法验证他的表单,直到他拥有该国家的正确语法。

但它仍有一个重大缺陷:

假设用户键入“France”,它与名称数组相匹配,但是他们决定自己编写,而不点击建议的字段:

当用户离开该字段时,它将被清除

那么,如果用户拥有的条目符合建议,如何通过不清除字段来使该脚本工作?

1 个答案:

答案 0 :(得分:1)

我(我想)发现了它:

change: function(event, ui) 
{
    var myval=$("#country").val();
    if($.inArray(myval,mycoutries) == -1)
    {
       $("#country").val("");
    }
}

到目前为止,非常好。