2

JavaScript/jQueryでonBlurイベントを呼び出さずにぼかしを強制するにはどうすればよいですか?

私はそれが何のために必要かをあなたに説明しようとします:

  • onBlur が呼び出されると、jQuery を介して PHP スクリプトを呼び出し、入力を検証します。何か問題がある場合は、メッセージが返され、それを jQuery スクリプトで表示し直します。
  • ぼやけたフィールドが入力されていない場合、スクリプトはユーザーをそのフィールドに戻す必要があります。

問題は、TAB を押してフィールドを変更し、最初のフィールドが入力されていない場合、スクリプトはフォーカスを戻しますが、入力されていない 2 番目のフィールドから onBlur が呼び出され、無限ループが発生することです。

だから、 onBlur イベントを呼び出さずに、フィールドをぼかして別のフィールドにフォーカスしたい。

4

3 に答える 3

4

それはあなたの質問で指定された答えではありませんが、私があなたに提案することは(ややUXのような観点で)無効な入力への自動リフォーカスを破棄し、代わりに無効なフィールドをマークすることです(私が提案するかもしれませんたとえば、赤?)。これで、イベントの自然なブラウザー動作タイプを防ぐ問題ではなく、無効なデータでのフォーム送信を防ぐという(おそらく)より単純な問題に対処できます。

さらに、自動リフォーカスはユーザーを苛立たせていると言っても過言ではありません。2番目のフィールドにタブで移動し、入力を開始してから、突然yoinkすることを想像してみてください。最初のフィールドにドラッグされます。

于 2012-06-25T15:15:37.560 に答える
1

ぼかしではなく、「変更」と「キーアップ」だけで使用してみませんか?

于 2012-06-25T15:15:48.660 に答える
1

上記のリチャードに同意します。入力の途中でフォーカスを失うことほど面倒なことはありませんが、これを行う必要がある場合 (顧客の要求などにより) - フィールドを自動フォーカスするコードで、onBlur機能を一時的に無効にしますフィールドをフォーカスするまで、再度有効にします。

于 2012-06-25T15:17:45.357 に答える