2014-01-18 132 views
7

我正在使用jQuery Validation插件來驗證表單。jQuery驗證複選框選中需要?

的問題是,我無法找到一個方法來驗證,如果在我的形式單一的複選框被選中

HTML標記:

<label for="terms">terms : </label> 
<input type="checkbox" name="terms" id="terms"> 

jQuery代碼:

rules: { 
    terms: "required" 
}, 
messages:{ 
    terms: "check the checbox" 
} 

任何幫助,將不勝感激。

+1

你說的是什麼插件。你的意思是* J * Query? –

+1

@IanClark他在標題中,問題中間和標籤中說jQuery。任何合理的讀者都會意識到,第一行中缺少的j只是一個錯字。 – Barmar

+0

對不起,我錯過了標籤 - 我看到你在編輯中添加了jQuery驗證。我並沒有試圖迂腐。 –

回答

4

你需要給一個值的複選框。

<input type="checkbox" name="terms" id="terms" value="accepted"> 
+1

這並沒有解決我的問題。 我決定以另一種方式解決它 - 如果複選框未選中,我禁用提交按鈕。 無論如何,謝謝 –

4

HTML標記:

<label for="terms">terms : </label> 
    <input type="checkbox" name="terms" value="1" id="terms"> 

jQuery代碼:

rules: { 
     terms: { 
     required : true 
     } 

    }, 
    messages:{ 
     terms: { 
     required : "check the checbox" 
     } 
    } 

的jsfiddle:http://jsfiddle.net/mZ6zJ/

4

也許你的複選框有css樣式

display: none 

visibility: hidden; 
width: 0; 

它幫助我更換。

-3

我只是做了我自己的註釋在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}); 
0

你需要用你的代碼文件準備jQuery的方法和驗證支票:

$().ready(function() { 
    $('#formId').validate({ 
    rules: { 
     terms: "required" 
     }, 
     messages:{ 
     terms: "check the checbox" 
     } 
    }) 
}) 

我希望這有助於

0

複選框的實施例jQuery驗證

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.js"></script> 
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script> 

<form id="demo"> 
<label for="terms">terms : </label> 
<input type="checkbox" name="terms[]" value="your value" id="terms"> 
</form> 
  • 給複選框的名字用方括號。
  • 提供價值複選框強制性的。

jQuery代碼

$(document).ready(function() { 
    $("#demo").validate({ 
     rules: { 
       'terms[]': { required: true }, 
     }, 
     messages:{ 
       'terms[]': "check the checbox" 
     } 
    }); 
});