私は単に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 *クエリーを意味しますか? –
@IanClark彼は、質問の真ん中で、タイトルとタグでjQueryを言った。すべての合理的な読者は、最初の行の行方不明のjは単に誤植であることに気付くでしょう。 – Barmar
申し訳ありませんタグを忘れました - jQueryを編集で追加したことがわかりました。私は賢明にしようとしていませんでした。 –