2011-05-16 125 views
5

这里是我的测试简单的验证码:jQuery验证:自定义规则不叫

jQuery.validator.addMethod("oneTypeChecked", function (value, element) { 
     return false; //$(':checkbox:checked') > 0 
    }, "Check one or more type"); 

    $("#RequestCreateForm").validate({ 
     rules: { 
      ChkBoxType1: { oneTypeChecked: true } 
     } 
    }); 

但是,当我提交表单我oneTypeChecked方法不会被调用。 为什么?

这里是我的HTML代码:

<div class="editor-field"> 
    <input type="checkbox" id="ChkBoxType2" name="requestTypeIds2" value="2">Type 2  
    <input type="checkbox" id="ChkBoxType1" name="requestTypeIds1" value="1">Type 1   
    <input type="checkbox" id="ChkBoxType3" name="requestTypeIds3" value="3">Type 3 
</div> 

非常感谢您!

+0

可你也发表您的HTML标记?是否有可能在你的标记中没有一个叫做“ChkBoxType”的元素? – 2011-05-16 16:04:49

+0

@sJhonny:完成了! – Tuizi 2011-05-16 16:11:53

+0

验证不是开箱即用的标准 - 您使用的是哪个插件。 – Hogan 2011-05-16 16:15:36

回答

6

验证插件根据属性,而不是ID的工作。尝试更改输入中的名称属性。

+0

是的!这是真的!用它的名字是有效的!非常感谢! – Tuizi 2011-05-16 18:07:34

0

据我所知,如果你没有添加所需的它将是有效的,因为它没有被检查。

rules: { 
     ChkBoxType1: { required : true, oneTypeChecked: true } 
    } 
+0

不,需要的是至少需要一个复选框,而不仅仅是'ChkBoxType1' – Tuizi 2011-05-16 16:41:14

2

与这个网站

<form id="RequestCreateForm" action="" method="post"> 
    <div class="editor-field"> 
     <input type="checkbox" class="oneTypeChecked" name="requestTypeIds2" value="2">Type 2  
     <input type="checkbox" class="oneTypeChecked" name="requestTypeIds1" value="1">Type 1  
     <input type="checkbox" class="oneTypeChecked" name="requestTypeIds3" value="3">Type 3 
    </div> 
    <input type="submit" value="submit" /> 
</form> 

与这个jQuery

jQuery.validator.addMethod("oneTypeChecked", function(value, element) { 
    return $('.oneTypeChecked:checked') > 0 
}, "Check one or more type"); 

$("#RequestCreateForm").validate({ 
    rules: { 
     ChkBoxType1: { 
      oneTypeChecked: true 
     } 
    } 
}); 

你会得到结果,你想

这里是一个WORKING DEMO

+1

为什么我的自定义验证不起作用,您的解决方案最终显示给我,我没有将方法名称添加到输入类中。谢谢!没有其他的例子显示这个关键的步骤 – BMills 2017-06-14 11:18:46

+0

我很高兴这有助于你,有一个美好的一天 – mcgrailm 2017-06-14 16:15:41

+1

谢谢..在这个问题上花了超过4个小时,最后它归结为这个!谢谢曼......这绝对是辉煌的 – Nirman 2017-08-30 07:33:28