jQuery/js のプロ向けの例を次に示します。
コードの一部に一貫性のない動作があるため、このプロジェクトはまだ完了していません。それを書いた直後に、あなたの一人が「コードに一貫性のない動作はなく、望ましくない動作しかない」と言うのを聞きました。
セットアップに関する注意事項:
- Web アプリでのレコードの編集
- .change() を使用してスクリプトを開始します。
- フィールドの初期値は、js を介して行われた変更と比較されます。
- 比較では、新しい値が、1) 元の値と同じか、2) リストの既存の値であるか、3) リストに含まれていない新しい値であるかがチェックされます。
- jQuery FlexBox を使用して、入力フィールドで Google の提案のような動作を作成します (入力時に一致する可能性のあるものがボックスに表示されますが、強制されることはありません)。
望ましい動作:
- ユーザーは、1) 完全な値を入力してフィールドを離れる、2) 値の一部を入力してからタブを押して提案された値を選択する、または 3) 値の一部を入力してからボックスからの推奨値。
- ロジックは、これらのイベントのいずれかの後に実行されます。
問題:
- ユーザーがボックスから提案された値 (上記の番号 3) をクリックすると、その値が入力に追加される前にロジックが実行されます。これは、ブラウザが入力フィールドを離れたことを検出し、.change() をトリガーしたためです。これにより、コードは空の文字列または部分的に綴られた単語を既存の値のリストと比較します。次に、ロジックは、ユーザーの選択が常にまったく新しい値であると判断します。
どうすればこの問題を克服できますか?