我只是做了我自己的註釋在C#和我的jQuery驗證匹配它。現在我只是註釋任何複選框,在這裏出現。如果您不使用C#,您可以輕鬆地將該類添加到您希望應用的元素上。
[System.AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
public class CheckboxRequired : ValidationAttribute, IClientValidatable
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value.GetType() != typeof(bool) || (bool)value == true)
return ValidationResult.Success;
return new ValidationResult("This checkbox must be checked.");
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ErrorMessage = "This checkbox must be checked.",
ValidationType = "CheckboxRequired"
};
yield return rule;
}
}
在我Validation.js
jQuery.validator.addMethod("CheckboxRequired", function (value, element) {
return (value != typeof undefined && value != false);});
jQuery.validator.addClassRules("CheckboxRequired", { CheckboxRequired: true});
你說的是什麼插件。你的意思是* J * Query? –
@IanClark他在標題中,問題中間和標籤中說jQuery。任何合理的讀者都會意識到,第一行中缺少的j只是一個錯字。 – Barmar
對不起,我錯過了標籤 - 我看到你在編輯中添加了jQuery驗證。我並沒有試圖迂腐。 –