如何使用日期验证器设置最小年龄 formvalidator.net.



我正在使用Jquery FormValidator birthdate属性。

已设置为仅允许过去的日期和不超过 120 年的日期。

我只想再验证一个,也就是说,它也不应该允许年龄小于 18 岁。

我怎样才能做到这一点?

您可以使用日期模块中的日期验证器并添加自定义验证器。

我只是添加了行var requiredAge = 18;并将 var 添加到验证中。

https://jsfiddle.net/03ehx9ns/

$.validate({
  modules : 'date'
});
$.formUtils.addValidator({
  name : 'older18',
  validatorFunction : function(val, $el, conf) {
  	var requiredAge = 18;
  	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" 
		 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>

相关内容

  • 没有找到相关文章

最新更新