0

私が達成しようとしていることを簡単に概説するために、JS フィドルを作成しました。ここで表示できます: http://jsfiddle.net/BNjby/1/

ご覧のとおり、「役割」には 5 つの異なるオプションがあります。それらの値は常に同じままです。基本的に、ロールのTraineeが選択されている場合、他のロールの選択が自動的に解除される(または検証エラーメッセージが表示される)ように、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>

これに数週間行き詰まっていたので、少し助けを求める時が来たと思いました。どうもありがとう:)

4

1 に答える 1

0

私は前にこれに遭遇しました。jQuery バリデータは、フィールド名が一意であることに依存しているため、フィールド名配列の使用を完全にはサポートしていません。これを解決する方法の 1 つは、フィールド名を roles[0]、roles[1]、roles[2] などに設定することです。これにより、jQuery バリデーターに固有のバインド先が与えられ、通常はデータを投稿する言語 (php) 、たとえば)投稿を処理するときに、それらを配列として引き続き受け入れます。

于 2013-12-16T14:12:22.690 に答える