我在MVC视图上使用验证。我在模型的其他属性上使用了一些数据注释(如Required和Length),但是我需要编写一个自定义验证器,如下所示来比较日期。
$(document).ready(function(){
$.validator.addMethod("enddate", function(value, element) {
var startdatevalue = $('.startdate').val();
return Date.parse(startdatevalue) < Date.parse(value);
}, "End Date should be greater than Start Date.");
});
我正在将“enddate”类添加到文本框中,以便进行验证。但是,验证不会在预期时触发。在我的场景中,它应该像其他验证器一样单击提交按钮时触发,但是,当我从文本框中失去焦点时,自定义验证器会触发。有其他方法可以在其他验证发生时使自定义验证器触发。此外,验证摘要中未报告错误,但验证程序触发并将文本框的颜色更改为红色。
答案 0 :(得分:0)
$(document).ready(function(){
$.validator.addMethod("enddate", function(value, element) {
var startdatevalue = $('.startdate').val();
return Date.parse(startdatevalue) < Date.parse(value);
}, "End Date should be greater than Start Date.");
$('#yourformid').validate();
});
我认为它有效。
答案 1 :(得分:0)
$(document).ready(function () {
$.validator.addMethod("endDate", function (value, element) {
var startDate = $('.startDate').val();
return Date.parse(startDate) <= Date.parse(value);
}, "* End date must be Equal/After start date");
});
其工作代码,我正在使用它
答案 2 :(得分:0)
单击按钮时,可以调用$(form).valid()或$(form).validate()。
$("submitbutton").click(function(){
if(!$(form).valid())
{
return false;
}
});
答案 3 :(得分:0)
回顾以下文章:
那里使用的东西如:
function appendModelPrefix(value, prefix) {
if (value.indexOf('*.') === 0) {
value = value.replace('*.', prefix);
}
return value;
}
如果您的模型属于另一个类,则可能会出现问题。例如:MyViewModel.Person
如果是,则元素的名称将类似于:Person.Name
。