是否需要jQuery Validate复选框?

时间:2014-01-18 12:07:08

标签: javascript jquery jquery-validate

我正在使用jQuery Validation插件来验证表单。

问题是我无法找到验证表单中是否选中了单个复选框的方法

HTML标记:

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

jQuery代码:

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

任何帮助都将不胜感激。

6 个答案:

答案 0 :(得分:6)

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/

答案 1 :(得分:6)

也许您的复选框有css样式

display: none

将其替换为

visibility: hidden;
width: 0;

这对我很有帮助。

答案 2 :(得分:4)

您需要为复选框指定一个值。

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

答案 3 :(得分:2)

Checkbox 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"
         }
     });
});

答案 4 :(得分:0)

您需要将代码包装在文档就绪的jQuery方法和验证检查中:

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

我希望这会有所帮助

答案 5 :(得分:-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});