我需要用户在一个字段中输入一个国家,但一个国家可以用不同的方式命名(即:"摩尔多瓦","摩尔多瓦共和国","摩尔多瓦共和国"...)。
这可能会在短时间内导致一个混乱的局面.因此,我决定将用户输入与 "官方名称 "的数组进行比较,并使用jQuery自动完成来解决这个问题。
现在,如果用户输入 "摩尔多瓦",会弹出一个选择框,让他选择合适的语法。
但没有什么能阻止他单独选择 "摩尔多瓦",因为自动完成是一个建议,用户可以通过不点击它来绕过。
我不希望这样,因为它最终也会导致一团糟,所以我搜索了一下,在这里找到了一个解决方案。
它看起来像这样。
$("#country").autocomplete(
{
source: mycountries
change: function(event, ui)
{
if (!ui.item)
{
$("#country").val("");
}
}
});
这是很好的,因为如果用户没有选择自动完成建议,它就会清除该字段,这样一来,用户就不可能验证他的表单,直到他有合适的国家语法。
但它仍然有一个很大的缺陷。
比方说,用户输入了 "法国",这与数组中的名字相匹配,但他决定自己写,而不点击建议的字段。
它将被清除 当用户离开该字段时也是如此。
那么,我怎样才能使这个脚本工作,如果用户自己的输入符合建议,就不清除字段?
我(认为我)找到了。
change: function(event, ui)
{
var myval=$("#country").val();
if($.inArray(myval,mycoutries) == -1)
{
$("#country").val("");
}
}
到目前为止,还不错