2009-11-14 67 views
2

我需要驗證,使用jQuery驗證插件從複選框列表中選擇至少一個複選框。由於複選框是ASP.NET GridView控件的一部分,因此這些複選框的名稱將會不同,這使得爲驗證插件複合體設置規則,因爲它需要規則的名稱。我尋覓了一圈,發現以下問題jQuery驗證:驗證至少有一個複選框從名單不同的列表中選擇

我認爲首要的問題是一個更好的解決辦法,但我仍然覺得這是不該做的正確方法。其他人是否有更多的選擇來解決這個問題。

回答

1

如果一個複雜的規則只有在沒有選中其他複選框的情況下才需要該項目,那麼該如何操作呢?

rules: { 
    'require-one': { 
     required : { 
      depends: function(element) { 
         var allBoxes = $('.require-one'); 
         if (allBoxes.filter(':checked').length == 0) { 
          if (allBoxes.eq(element).length != 0) { 
           return true; 
          } 
         } 
         return false; 
        } 
     } 
    } 
} 

然後,你的require-one類應用到集合中的每個複選框。如果沒有選中任何一個框,第一個將是必需的。

+0

@tvanfosson,我的場景是驗證至少一個複選框被選中,而不是隻有一個複選框被選中(我沒有使用它作爲單選按鈕組)你的規則似乎表明,只有一個應該被選中 我做了去類的方法,缺點似乎是每個複選框都會調用驗證,即使我使用容器顯示錯誤消息,消息也是如此。 –

+0

否。如果至少選中一個複選框,則不需要任何複選框。如果沒有選中,那麼全部都是必需的 - 並且由於它們沒有被檢查,它會導致每個驗證錯誤。它的缺點是每個人都有一個消息。 – tvanfosson

+0

如果沒有選中,你可以調整它以返回true。我會調整。 – tvanfosson

相關問題