2011-11-14 215 views
0

我正在使用jQuery驗證插件,我正在尋找添加一些自定義邏輯。我有一系列有複選框的複選框,這些複選框與它們相關聯。對於某些(不是全部)這些父複選框,我想要求選中其中一個子複選框。我沒有問題硬編碼此所以我添加一個字段像這樣我的DOM:jQuery自定義驗證器

<input type="hidden" id="child_required_1" class="child_required_1" /> 

,然後添加一個自定義的驗證這樣的:

jQuery.validator.addMethod('child_required_1', function(val, element) { 
if($('#product_responses_1').length > 0) { 
    if($('#product_responses_1').is(':checked')) { 
     var count = $("input:checkbox:checked[id^='children_tags_1_']").length; 

     if(count == 0) { 
      return false; 
     } 
    } 
} 

return true; 
}, 'You must select at least one child.'); 

這工作完全正常。但是,當我複製所有這些並添加「_2」時,只有一個驗證器似乎觸發。那麼從我能收集到的信息來看,自定義驗證器對每個表單都是唯一的?如果是這樣的話,我該如何處理這樣的情況,我可能需要15-20個這樣的情況在不同的地方展示?我不想只顯示一個錯誤。

我也可以創建一個類規則,但這並不能解決我創建多個錯誤標籤並將它們放置在相關位置的問題。

回答

0

顯然在一個隱藏的領域它沒有工作,但是當我刪除隱藏的領域,並將該類應用到實際複選框本身,它工作正常。不完全確定原因。