我需要用户在字段中键入国家/地区,但可以通过各种方式命名国家/地区(例如:“摩尔多瓦”,“摩尔多瓦共和国”,“摩尔多瓦共和国”......)。
这可能会立即导致混乱。 所以我决定将用户输入与“官方名称”数组进行比较,并使用jQuery自动完成来解决这个问题。
现在,如果用户输入“摩尔多瓦”,会弹出一个选择框,让他选择正确的语法。
但没有什么可以阻止他单独使用“摩尔多瓦”,因为自动完成是一个建议用户可以通过不点击它来绕过。
我不想那样,因为它最终也会导致混乱,所以我搜索并找到了解决方案:
jquery autocomplete field that REQUIRES a selected value?
它看起来像这样:
$("#country").autocomplete(
{
source: mycountries
change: function(event, ui)
{
if (!ui.item)
{
$("#country").val("");
}
}
});
这很好,因为如果用户没有选择自动填充建议,它会清除该字段,这样,用户就无法验证他的表单,直到他拥有该国家的正确语法。
但它仍有一个重大缺陷:
假设用户键入“France”,它与名称数组相匹配,但是他们决定自己编写,而不点击建议的字段:
当用户离开该字段时,它将被清除。
那么,如果用户拥有的条目符合建议,如何通过不清除字段来使该脚本工作?
答案 0 :(得分:1)
我(我想)发现了它:
change: function(event, ui)
{
var myval=$("#country").val();
if($.inArray(myval,mycoutries) == -1)
{
$("#country").val("");
}
}
到目前为止,非常好。