淘汰日期验证工作不正常
Knockout date validation not working correctly
我需要以本地化格式(SK)验证日期,而淘汰验证是不可能的。
我正在使用:杜兰达尔1.2.0淘汰2.3.0淘汰验证https://github.com/Knockout-Contrib/Knockout-Validation
我需要这样的东西才能工作:
var newStartDate = ko.observable()
.extend({
required: { message: 'Start date is required.' },
date: true,
formattedDate: { format: 'ddMMyyyy', delimiter: '.' }
});
然后,如果我调用newStartDate.isValid(),我会得到以下结果:
newStartDate("");
false (OK)
newStartDate("test");
false (OK)
newStartDate("2013-02-02");
true (Bad)
newStartDate("2.2.2013");
false (Bad)
结果应该是:
newStartDate("2013-02-02");
false
newStartDate("2.2.2013)"; // or "2. 2. 2013"
true
我有一些在扩展函数内部进行自定义验证的解决方案,但这不是我想要的。我想让上面的方块工作,它也更短。
为什么不。。。对于我来说,日期规则似乎也有点过于宽松了。若您喜欢moment,但想要给调用者一些更干净的东西,请将您的规则添加到validation.rules对象中:
ko.validation.rules['simpleDate'] = {
validator: function (val, validate) {
return ko.validation.utils.isEmptyVal(val) || moment(val, 'MM/DD/YYYY').isValid();
},
message: 'Invalid date'
};
然后像这样使用:
var someDate= ko.observable().extend({ simpleDate: true });
很晚了,但我只想分享我对@ChoptimusPrime答案的更新。不硬编码格式:
ko.validation.rules['dateAndFormat'] = {
validator: function (val, format) {
return ko.validation.utils.isEmptyVal(val) || moment(val, format).isValid();
},
message: 'Please provide a valid date.'
};
ko.validation.registerExtenders();
我目前唯一可用的解决方案如下。这个验证器的问题是,它还将默认(EN)日期格式验证为有效,所以我必须添加一个IF以将其作为无效日期格式返回。
var dateValidator = function (val) {
if (!val)
return false;
if (moment(val, 'DD.MM.YYYY HH:mm').isValid()) {
return true;
}
else
return false;
};
var startDate = ko.observable().extend({ validation: { validator: dateValidator, message: 'Start of task is not in correct format.' } });
- Javascript.getHours()工作不正常
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 谷歌分析跟踪内部链接不正常工作的事件
- 电话间隙 2.8 位置:固定不正常工作
- GMT . sehours不正常工作
- Jquery幻灯片效果不正常工作
- D3拖动不正常工作
- Jquery搜索字符串从跨度不正常工作
- 美元的范围.在使用MongoDB的controller.js中编辑不正常工作
- 随机音乐播放通过HTML javascript不正常工作
- 华丽的jQuery图像库插件不正常工作,只有在网站的一部分
- Javascript按钮在时钟当前计时不正常工作
- 导航器显示Internet连接状态.联机不正常工作,并显示错误的状态,而互联网没有连接
- jQuery切换不正常工作的第二次
- 谷歌API自动完成不正常工作
- 触摸结束事件不正常工作在铬
- 如何修复HTML5视频Javascript跟踪代码不正常工作
- 为什么第二次按钮点击不正常工作
- 美元.ajax不正常工作在我的代码
- 切换显示的潜水在道场不正常工作在谷歌Chrome浏览器