2013-10-11 78 views
0

我已經創建了一個JS小提琴來簡要說明我正在嘗試完成。您可以在此處查看: http://jsfiddle.net/BNjby/1/Jquery驗證插件自定義addMethod幫助,複選框

正如您所看到的,「角色」有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> 

一直停留在這一個幾個星期,我想是時候問了一下幫助。多謝:)

+0

當我們甚至看不到您的HTML標記時,我們該如何提供幫助? – Sparky

+0

對不起,我剛剛更新了我的問題。 –

回答

0

我以前碰到過這個。 jQuery驗證器不完全支持使用字段名稱數組,因爲它依賴於字段名稱是唯一的。你可以通過設置你的字段名稱爲角色[0],角色[1],角色[2]等方式來解決這個問題。這爲jQuery驗證器提供了一些獨特的綁定方法,通常是發佈數據的任何語言(php ,例如)在處理帖子時仍然將它們接受爲數組。