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