0

ユーザーがフィールドに国を入力する必要がありますが、国にはさまざまな方法で名前を付けることができます (例: "モルドバ"、"モルドバ共和国"、"モルドバ、共和国"...)。

これはすぐに混乱につながる可能性があります。そこで、ユーザー入力を「公式名」の配列と比較し、jQuery オートコンプリートを使用してその問題を解決することにしました。

ここで、ユーザーが「Moldova」と入力すると、選択ボックスがポップアップ表示され、適切な構文を選択できるようになります。

しかし、オートコンプリートは、ユーザーがクリックしないことでバイパスできるという提案であるため、彼が「Moldova」だけを使用することを妨げるものは何もありません。

最終的には混乱につながるので、私はそれを望まないので、ここで解決策を検索して見つけました:

選択した値を必要とするjqueryオートコンプリートフィールド?

次のようになります。

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

ユーザーがオートコンプリートの提案を選択しなかった場合、フィールドがクリアされるため、これは便利です。この方法では、ユーザーはその国の適切な構文を取得するまでフォームを検証できない可能性があります。

しかし、それにはまだ大きな欠陥があります:

ユーザーが名前の配列に一致する「フランス」と入力したとしますが、それを示唆するフィールドをクリックせずに、すべて自分で書くことにしました。

ユーザーがフィールドを離れると、同じようにクリアされます。

では、ユーザー自身のエントリが提案と一致する場合にフィールドをクリアしないようにして、このスクリプトを機能させるにはどうすればよいでしょうか?

4

1 に答える 1

1

私は(私が思うに)それを見つけました:

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

ここまでは順調ですね。

于 2013-07-15T00:53:02.510 に答える