C# Telerik ASP.NET MVC复选框剑道验证
我的视图模型中有[Required]属性的布尔属性 我有C# Telerik ASP.NET MVC复选框剑道验证,c#,jquery,asp.net-mvc,kendo-ui,telerik,C#,Jquery,Asp.net Mvc,Kendo Ui,Telerik,我的视图模型中有[Required]属性的布尔属性 我有 @(Html.Kendo().CheckBoxFor(m => m.AcceptTermsOfUseAndPrivacyPolicy) $("form").kendoValidator(); 在我看来 表单上的所有其他控件按预期进行验证,只有复选框验证不起作用(未执行验证) 我缺少什么?用于MVC零件(创建自定义属性、视图和模型验证) 对于JavaScript部分(自定义剑道验证器): 你在期待什么?您的属性只能有两个值中的一
@(Html.Kendo().CheckBoxFor(m => m.AcceptTermsOfUseAndPrivacyPolicy)
$("form").kendoValidator();
在我看来
表单上的所有其他控件按预期进行验证,只有复选框验证不起作用(未执行验证)
我缺少什么?用于MVC零件(创建自定义属性、视图和模型验证)
对于JavaScript部分(自定义剑道验证器):
你在期待什么?您的属性只能有两个值中的一个-
true
或false
,它将始终具有这些值(除非您有恶意用户试图发回其他值)。请注意,[Required]
实际上不是必需的,因为该属性不可为空。嗯,是的,谢谢您为我指明了正确的方向。我需要自定义布尔验证属性,它将使模型在出现假值时处于错误状态。此外,我可能需要自定义剑道验证器。
(function($, kendo) {
$.extend(true, kendo.ui.validator, {
rules: {
booleanrequired: function(input, params) {
if ($(input).is(':checkbox')) {
var attr = $(input).attr('data-val-booleanrequired');
var req = $(input).attr('data-val-required');
if ((typeof req !== typeof undefined && req !== false) && (typeof attr !== typeof undefined && attr !== false)) {
return $(input).is(':checked');
}
return true;
}
return true;
}
},
messages: {
booleanrequired: function(input) {
return input.attr("data-val-booleanrequired");
}
}
});
})(jQuery, kendo);