2012-12-14 94 views
1

我一直在用自定義驗證整天奮鬥,我認爲是時候請求一些幫助。自定義方法來檢查子div是否有類 - jquery驗證

我建立的是一個類似於Facebook的選擇用戶界面,當你添加用戶到一個事件。我試圖建立一個函數,如果沒有用戶被選中,將返回一個錯誤。我遇到的問題是父div需要像表單元素一樣對待,但是我可以找到有關如何執行此操作的任何信息。

另一個想法是在我製作JSfiddle時找到我的。我將用戶標識存儲在一個數組中。也許驗證可能會檢查一個空數組?林不知道該怎麼做,要麼,或哪一種方式將是理想的..

這裏是一個小提琴玩: http://jsfiddle.net/7neCU/1/

這裏是我到目前爲止已經試過。

$.validator.addMethod('require-one-div', function (element) { 
     if ($('#trainees').children('.each_user').hasClass('selected')) 
      return true; 
     }, "Please select at least 1 trainee"); 

和規則

rules: { 
      trainees:{ 
       'require-one-div':true 
      }, 
     } 

我也給了家長的div #trainees名稱& ID 「研修生」 和階級的需要。

謝謝你的任何建議或想法。

+0

驗證插件可能會查找'input'字段。爲什麼不用'click'事件設置'input'='hidden'''true' /'false'值? – greener

+0

我目前正在嘗試這個,謝謝你的建議 –

回答

1

jQuery驗證不支持section上的規則。它是一個表單插件。所以你必須使用inputtextarea,select

正如評論建議,你可能需要幾件事情:

  1. 做一個隱藏的複選框組或單選組
  2. 您的配置文件掛鉤點擊進入每個選框或
  3. 電話驗證對此,請務必指定ignore: '',否則驗證將忽略任何隱藏的表單字段。
+0

嘿非常感謝!我似乎已經得到它與這個信息工作。 –

0

Humm ....不能100%確定這個驗證插件是如何工作的。但是一種方法可以簡單地做到「驗證」步驟。

$.validator.addMethod('require-one-div', function (element) { 
    return $('#trainees .each_user.selected').length; 
}, "Please select at least 1 trainee"); 

基本上它說,如果有0 .selected .each_user的div,驗證將返回0(falsy)。如果至少有一個,則.length> = 1是真實的,意味着驗證通過。如果驗證是相反的,就直接點擊!在前面的長度檢查!$('#trainees .each_user.selected').length

相關問題