ユーザーがフィールドに国を入力する必要がありますが、国にはさまざまな方法で名前を付けることができます (例: "モルドバ"、"モルドバ共和国"、"モルドバ、共和国"...)。
これはすぐに混乱につながる可能性があります。そこで、ユーザー入力を「公式名」の配列と比較し、jQuery オートコンプリートを使用してその問題を解決することにしました。
ここで、ユーザーが「Moldova」と入力すると、選択ボックスがポップアップ表示され、適切な構文を選択できるようになります。
しかし、オートコンプリートは、ユーザーがクリックしないことでバイパスできるという提案であるため、彼が「Moldova」だけを使用することを妨げるものは何もありません。
最終的には混乱につながるので、私はそれを望まないので、ここで解決策を検索して見つけました:
選択した値を必要とするjqueryオートコンプリートフィールド?
次のようになります。
$("#country").autocomplete(
{
source: mycountries
change: function(event, ui)
{
if (!ui.item)
{
$("#country").val("");
}
}
});
ユーザーがオートコンプリートの提案を選択しなかった場合、フィールドがクリアされるため、これは便利です。この方法では、ユーザーはその国の適切な構文を取得するまでフォームを検証できない可能性があります。
しかし、それにはまだ大きな欠陥があります:
ユーザーが名前の配列に一致する「フランス」と入力したとしますが、それを示唆するフィールドをクリックせずに、すべて自分で書くことにしました。
ユーザーがフィールドを離れると、同じようにクリアされます。
では、ユーザー自身のエントリが提案と一致する場合にフィールドをクリアしないようにして、このスクリプトを機能させるにはどうすればよいでしょうか?