jquery.validate を使用して、日付フィールドを含むフォームを検証しようとしています。ぼかしで適切に検証することができます: これを行いたいフィールドに validateonblur 属性を追加します:
$("input[validateonblur]").blur(function () {
$(this.form).validate().element(this);
});
しかし、フォームを送信すると、その時点での検証は必須フィールドのみを検証します。日付フィールドにどんな種類のゴミがあるかは気にしません。HTMLの属性として行うかどうかにかかわらず、dateISO属性を完全に無視します...
<input name="DOB" id="DOB" type="text" required dateISO="true" class="blah" />
...またはそのように:
$("#MyForm").validate( {
rules: {
DOB: {
required: true,
dateISO: true
}
} );
...または両方。
また、フォームを送信すると、エラーのポップアップ/ツールチップが表示されるのに対し、$(this.form).validate().element(this); を呼び出すと、まったく異なるエラーが表示されることに気付きました。方法として、HTML にラベルを挿入します。しかし、繰り返しになりますが、彼らのdateISOドキュメントページには、私が見ているものとはまったく異なる動作の例があります.実際の日付値を検証し、フォーム送信時にラベルでエラーを行います. どうして?!彼らは私が持っていないパラメータを与えていません。なぜ異なる結果が得られるのでしょうか?
ドキュメントはかなり貧弱です。ドキュメントでは、validate() を呼び出して検証を設定すると、フォームに valid() メソッドが与えられると主張していますが、実行時には未定義です。
// UPDATE: I had a very poor understanding of jquery when I wrote this.
alert(MyForm['validate']); // 'undefined'
このライブラリは使用可能な状態ですか、それとも時間を無駄にしていますか?