1

コードに小さなバグがあります。ユーザーが日付フィールドを選択すると、カレンダーがポップアップ表示され、日付をクリックできますが、検証で空であるかのようにエラーが発生します。

ユーザーがもう一度クリックしてエラーが消えた場合、または [送信] をクリックした場合、エラー テキストがまだ表示されていても、フォームは正常に処理されます。

このルーズエンドをクリーンアップしたいのですが、このコードの一部は私自身のものではないため、問題を特定できませんでした.

フォーム フィールドと検証関数は以下にあり、作業コピーは jsfiddle にあります。

フォームコードは

<label class="control-label" for="date">Date:</label>
<input type="text" name="date" id="date" readonly onClick="GetDate(this);"/>
<button type="submit" class="btn btn-giant btn-primary">Submit</button>

検証ステートメントは

jQuery(function () {
jQuery("#date").validate({
expression: "if (VAL) return true; else return false;",
message: "Please select a date."
});
});

jsfiddle に実用的なサンプルを投稿しました。

http://jsfiddle.net/andrewgledhill/NdHGH/1/embedded/result/

ありがとう。

4

1 に答える 1

0

入力が変更された後に検証する必要があります。テキストが入力に到着する前に検証しています。このフィドルがエラーを出していないことがわかります:http://jsfiddle.net/NdHGH/4/

また、理解しやすくするために、onclickをインラインonclickから移動しました。

jQuery(function () {
  jQuery('#date').on('click',function(){
    GetDate(this);
  });
  jQuery("#date").on('change',function(){
    validate({
      expression: "if (VAL) return true; else return false;",
      message: "Please select a date."
    });
  });
});
于 2013-01-09T23:32:13.940 に答える