出生日期小于18的淘汰赛JS验证

时间:2018-08-01 00:36:29

标签: javascript knockout.js knockout-validation

需要为我的项目构建功能,该功能将禁止任何人在出生日期字段中输入小于18岁的出生日期。

验证有效!!只需要帮助来进行验证

htmlcode

<label>Date of Birth <span class="red-asterisk">*</span></label>
<input type="text" id="DOB" name="DateOfBirth" placeholder="&nbsp dd/mm/yyyy" data-bind="datePicker : Model.DateOfBirth, dateTimePickerOptions : {format: 'DD/MM/YYYY', maxDate: (new Date()).addDays(-6573), useCurrent : false}" />

js文件代码

self.Model.DateOfBirth = ko.observable().extend({
    date: true,
    required: {
        params: true,
        message: "Please enter a date"
    }
});

我应该在哪里更改验证代码或显示验证年龄小于18岁的用户?

1 个答案:

答案 0 :(得分:0)

您需要按照以下步骤创建剔除自定义规则

ko.validation.rules["DateValidation"] = {
    validator: function (val) {
       var ageDifMs = Date.now() - val.getTime();
       var ageDate = new Date(ageDifMs); // miliseconds from epoch
       var year = Math.abs(ageDate.getUTCFullYear() - 1970);
       return (year < 18);
    },
    message: " "
};

ko.validation.registerExtenders();

然后您可以添加您的扩展

self.Model.DateOfBirth = ko.observable().extend({
date: true,
required: {
    params: true,
    message: "Please enter a date"
},
DateValidation: {
     message: "Override message"
            }
 });