jQueryのvalidate pluginとmaskedInputプラグインを使用して、入力に対してカスタムの日付と時刻の検証を行いました。dateTimeの検証で将来の年を防ぐ方法を教えてください。
このカスタム検証では、今年よりも大きな年を入力できないように検証する方法はありますか?
マイコード:
$("#date").mask("99/99/9999 99:99", {
placeholder: "mm/dd/yyyy hh:mm"
});
$.validator.addMethod("dateTime", function(value, element) {
var stamp = value.split(" ");
var validDate = !/Invalid|NaN/.test(new Date(stamp[0]).toString());
var validTime = /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i.test(stamp[1]);
return this.optional(element) || (validDate && validTime);
}, "Invalid datetime.");
$('#form').validate({
rules: {
date: {
required: true,
dateTime: true
}
},
messages: {
date: {
required: ""
}
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.maskedinput/1.4.1/jquery.maskedinput.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.1/jquery.validate.min.js"></script>
<form action='' method='post' id='form'>
<input type='text' name='date' value='' id='date' placeholder='mm/dd/yyyy hh:mm'>
</form>
ありがとう。あなたのコードを少し修正しました。 'myDate'の代わりに' year'を指定し、エラーメッセージも追加してください。私はあなたが複数のカスタムメソッドを追加できるようになった今まで知りませんでした。 – Ionut
@Ionut Galdは助けました。私はそのタイプミスを修正しました。 –