Jquery验证插件自定义addMethod帮助,用于复选框

时间:2013-10-11 19:09:02

标签: jquery jquery-validate

我已经创建了一个JS小提琴,简要概述了我想要完成的事情。你可以在这里查看: http://jsfiddle.net/BNjby/1/

正如您所看到的,"角色"有5种不同的选项。他们的价值观将永远保持不变。基本上,我需要添加js&验证,以便在选择角色培训生时,自动取消选择其他角色(或显示验证错误消息);同样,如果选择其中一个角色,则取消选择实习生。

我目前的Jquery看起来像这样:

$(document).ready(function(){
    $("#registerForm").validate({
            rules: {
                'roles[]':{
                    required:true,
                    profile_checkboxes: true
                }
            },
    });
  });

$.validator.addMethod("profile_checkboxes", function (value, element) {
    if($(element).is(':checked') && value == 5){
        $(element).siblings(':checkbox').attr('checked',false);
        return true;
    } else if ($(element).is(':checked') && value != 5){
        if($(element).siblings().val() == 5){
            console.log($(this))
        }
    }

}, "");

和html:

<h1>Form Validation Example</h1>
    <form id='registerForm' name='registerForm' method='post' action='' >  
        <div class="control-group">
        <label for="role">Role</label>  
             <div class="controls" id="role_names">


            <label class="checkbox"><input type="checkbox" name="roles[]" value="5" /> Trainee</label>                                      
<label class="checkbox"><input checked="checked" type="checkbox" name="roles[]" value="4" /> Supervisor</label>                                 
<label class="checkbox"><input type="checkbox" name="roles[]" value="6" /> Faculty</label>                                  
<label class="checkbox"><input type="checkbox" name="roles[]" value="7" /> Coordinator</label>                                  
<label class="checkbox"><input type="checkbox" name="roles[]" value="3" /> Manager</label>                                      </div>
                    </div>
       <button class="pull-right btn-success btn" type="submit"><i class="icon-check"></i>Save Changes</button>
    </form>
几个星期以来一直困在这个,我觉得是时候要求一些帮助了。非常感谢你:))

1 个答案:

答案 0 :(得分:0)

我之前遇到过这种情况。 jQuery验证器不完全支持使用字段名称数组,因为它依赖于字段名称是唯一的。解决这个问题的一种方法是将你的字段名称设置为角色[0],角色[1],角色[2]等。这为jQuery验证器提供了一些独特的绑定方式,通常是你发布数据的语言(php) ,例如)在处理帖子时仍会接受那些作为数组。