【问题标题】:How to set minimum age using date validator of formvalidator.net?如何使用 formvalidator.net 的日期验证器设置最小年龄?
【发布时间】:2016-07-08 12:11:02
【问题描述】:

我正在使用Jquery FormValidator birthdate 属性。

但是,

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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: jquery jquery-form-validator


    【解决方案1】:

    您可以使用来自Date-Module 的日期验证器并添加custom validator

    我刚刚添加了行 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>

    【讨论】:

    • errorMessage 如果提供的年龄小于 18,则不会触发
    猜你喜欢
    • 2015-09-15
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    相关资源
    最近更新 更多