何らかの理由で属性を使用したくない場合は、プラグインのメソッドplaceholder
を使用してカスタム ルールを作成できます。これは、OP が別のアプローチを採用した場合でも、新しいルールを作成する方法に関する良い教訓でもあります。addMethod()
date
値が でない場合にのみ検証を行いたいとおっしゃっていたので"yyyy-mm-dd"
、入力された値を要素の に対してチェックする条件を追加しdefaultValue
、デフォルトのdate
メソッド/ルール コードを内部に配置しました。
jQuery.validator.addMethod("mydaterule", function (value, element) {
if (value != element.defaultValue) {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
} else {
return true;
}
}, 'please enter a valid date');
必要に応じてさらに微調整できます。
次のように新しいルールを適用します。
$('#myform').validate({
rules: {
mydate: {
mydaterule: true
}
}
});
デモ: http://jsfiddle.net/Acew7/
重要な注意:は、既定の規則"yyyy-mm-dd"
を満たす正しい形式ではありません。date
ただし、"yyyy/mm/dd"
動作します。
例えば
- 2013-02-28 は
date
検証に失敗します
- 2013/02/28
date
バリデーション合格