2

このフォームを見ると: http://docs.jquery.com/Plugins/Validation#Example

問題が 1 つあります。テキスト ボックスに 1 回のキーストロークを入力すると、すぐにフィールドの検証が開始されます。たとえば、電子メール フィールドに入力を開始すると、1 回のキーストロークで検証エラーが発生します。

これは、例のフォームの下にある説明テキストとはまったく矛盾しているように見えます。

フィールドが無効としてマークされる前に、検証は怠惰です: フォームを初めて送信する前に、ユーザーは煩わしいメッセージを受け取ることなくフィールドをタブで移動できます - 実際に正しい値を入力する機会が得られる前に盗聴されることはありません

フィールドが無効とマークされると、熱心に検証されます。ユーザーが必要な値を入力するとすぐに、エラー メッセージが削除されます。

ユーザーがマークされていないフィールドに何かを入力し、タブ/クリックしてそこから離れる (フィールドをぼかす) 場合、それは検証されます - 明らかにユーザーは何かを入力するつもりでしたが、正しい値を入力できませんでした

これは、ユーザーが a) フォームを送信するか、b) フィールドにデータを入力してフィールドをぼかすまで、「煩わしいエラー メッセージ」が表示されない、望ましい動作を示しています。しかし、デモで実際に起こっていることは、フィールドがぼやけた後ではなく、最初のキーストロークの後に検証がトリガーされることです。したがって、ユーザーは、自分がしていることから気をそらす「迷惑なエラー メッセージ」にさらされます。私たちはイライラするユーザーではなく、幸せなユーザーを求めています :-)

デモの動作ではなく、テキストで説明されている動作を取得するにはどうすればよいですか?

ありがとう!

-ジョシュ

4

2 に答える 2

0

デフォルトの動作は、ライブ検証を行うことです。これをオーバーライドするには、パラメータを追加するだけです

onkeyup:falseこのように

 $(document).ready(function(){
    $("#commentForm").validate({
      "onkeyup":false
      });
  });

これがデモです

于 2012-11-09T21:32:54.860 に答える