5
私はJquery FormValidator生年月日属性を使用しています。formvalidator.netの日付バリデータを使用して最低年齢を設定するにはどうすればよいですか?
しかし、
唯一の120歳以上ではありません過去の日付と日付を許可するように設定されています。
もう1つの検証が必要です。つまり、18歳未満の年齢も許可しないといけません。
どうすればそれを達成できますか?
私はJquery FormValidator生年月日属性を使用しています。formvalidator.netの日付バリデータを使用して最低年齢を設定するにはどうすればよいですか?
しかし、
唯一の120歳以上ではありません過去の日付と日付を許可するように設定されています。
もう1つの検証が必要です。つまり、18歳未満の年齢も許可しないといけません。
どうすればそれを達成できますか?
Date-Moduleから日付バリデータを使用し、custom validatorを追加できます。
私はちょうどvar requiredAge = 18;
行を追加し、検証にvarを追加しました。
https://jsfiddle.net/03ehx9ns/
$.validate({
modules : 'date'
});
$.formUtils.addValidator({
name : 'older18',
validatorFunction : function(val, $el, conf) {
\t var requiredAge = 18;
\t var dateFormat = 'yyyy-mm-dd';
if($el.valAttr('format')) {
dateFormat = $el.valAttr('format');
}
else if(typeof conf.dateFormat !== 'undefined') {
dateFormat = conf.dateFormat;
}
var inputDate = $.formUtils.parseDate(val, dateFormat);
if (!inputDate) {
return false;
}
var d = new Date();
var currentYear = d.getFullYear();
var year = inputDate[0];
var month = inputDate[1];
var day = inputDate[2];
if (year === currentYear - requiredAge) {
var currentMonth = d.getMonth() + 1;
if (month === currentMonth) {
var currentDay = d.getDate();
return day <= currentDay;
}
else {
return month < currentMonth;
}
}
else {
return year < currentYear - requiredAge && year > (currentYear - 124); // we can not live for ever yet...
}
},
errorMessage : 'You need to be older then 18',
errorMessageKey: 'badDate'
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.26/jquery.form-validator.min.js"></script>
<form action="" id="date-form">
<p>
Birth date
<input name="..." data-validation="older18"
\t \t data-validation-help="yyyy-mm-dd (Not allowing dates in...">
</p>
<p>
Time
<input name="" data-validation="time" data-validation-help="HH:mm">
</p>
<p>
<input type="submit">
</p>
</form>
'errorMessage'がトリガされません –