【问题标题】:Knockout JS Validation for Date of Birth less than 18出生日期小于 18 的淘汰赛 JS 验证
【发布时间】:2023-03-08 03:14:01
【问题描述】:

在为我的项目构建一个函数时需要帮助,该函数将禁止任何人在出生日期字段中输入小于 18 岁的出生日期。

验证将起作用!只是需要帮助来建立一个验证

html代码

<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 岁不允许登录?

【问题讨论】:

  • 您是否从文档中看到this example
  • 我试过了,效果不大!! :(你能再帮我一次吗...
  • 有几种方法可以做到这一点,您可以选择禁用输入字段或实现扩展器功能,然后使用该实现。 extender的实现非常简单易行。

标签: javascript knockout.js knockout-validation


【解决方案1】:

您需要按如下方式创建淘汰赛自定义规则

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"
            }
 });

【讨论】:

  • 请您详细说明从今天开始我应该正确的代码以验证目前 18 岁及以上的人
  • ko.validation.rules["DateValidation"] = { validator: function (val) { if (Year>=2000) { alert('Date Validated 18 Years and Above');返回真; } // 自定义日期检查逻辑并返回真假 else { } }, message: " " };
猜你喜欢
  • 2015-11-17
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 2014-10-13
  • 2013-03-22
  • 2011-08-09
  • 1970-01-01
相关资源
最近更新 更多