次のようなフォームがあるとします。
Name:<input type="text" name="xxx" id="name"/>
Type:<select>
<option>xx</option>
<option>xx</option>
</select>
<input type="submit" disabled="disabled" id="sub" />
ここで、ユーザー名が一意であることを確認したいと思います。また、送信ボタンは、名前が一意である場合にのみ有効になります。そこで、jQueryAJAXを使用してデータベースにクエリを実行します。
でも今はいつチェックするのかな?
最初に私はこれを使用します:
$("#name").blur(function () {
$.get(........);
}
しかし現在、最新のブラウザでは、フォームデータの保存とauto-filled
機能が提供されています。したがって、ユーザーが入力をdbclickすると、ブラウザーはユーザーが選択できるデータ(履歴データ)のリストを提供します(下の画像を参照)。
ユーザーがそれらの1つを選択すると、blur
イベントをトリガーできません。私もこのイベントを使おうとしてchange
いますが、ユーザーがキーボードを使用して入力すると、サーバーへのリクエストが多すぎます。
この問題を解決するにはどうすればよいですか?
更新: 以下の答えはどれも完璧ではありません。そして今、私は自分のページでタイマーを使用して、「名前」が変更されたかどうかを0.5秒に1回チェックします。それは私の要件を満たしているようです。