0

我有通過javascript動態添加的控件。我無法將這些控件上的類設置爲「需要」,因爲我需要靈活性將錯誤消息放在我想要的位置。 當我通過,我需要所有需要添加這些控件,我環路,並呼籲客戶端動態控件的jQuery驗證

$("#dynamicControlID").rules("add", {required:true}); 

問題是當我嘗試驗證的形式。當我打電話

$("#form1").validate() 

任何有「要求」中指定的類將有一個不錯的消息,說驗證非動態控制「需要該領域。」已動態添加不顯示任何信息的控制,而且即使它們爲空,validate函數也會返回true。 當我單獨驗證動態控件時,真正的困惑來臨了。如果我打電話

$("#dynamicControlID").valid() 

它將返回false,並通過輸入顯示錯誤消息。我確實打電話

$("#form1").valid() 

在我做任何動態控制之前。

我在這裏錯過了什麼嗎?我想要的是撥打

$("#form1").valid() 

並且顯示所有動態添加的控件的錯誤消息。

+0

所有這些彎引號......這些都不是在你的產品代碼,是什麼人? – Sparky 2012-01-17 20:21:55

+0

我用word輸入了我的問題:-D – lucrativelucas 2012-01-17 20:27:39

回答

1

你在正確的軌道上,但是當你想添加規則到新的元素,你必須已經調用$('#form1').validate();

因此,一個常見的設置是這樣的:

$('#form1').validate({ 
    //your options 
}); 

$('#dynamicControlID').rules('add',{required:true}); 
+0

謝謝,這正是我錯過的! – lucrativelucas 2012-01-31 17:04:28

0

您是否在控件添加到窗體後嘗試創建驗證規則?

您可以在變量頁面加載和存儲設置驗證和動態添加規則,它是這樣的:

var validator = $("#form1").validate(rules:{}); 

加入了動態控制,形成後..

validator.settings.rules.new_control_name = { required: true }; 

然後在表單提交:

if($("#form1").valid()){ 
    // valid 
} 
+0

我試過了,但是同樣的東西。我在Chrome上進入了JavaScript調試器,並且'validator.settings.rules' 返回了我設置的所有規則的列表。所有的字段都是必需的,但'validator.valid()'仍然返回true。 – lucrativelucas 2012-01-18 13:52:28

+0

你能提供你的html和js嗎? – 2012-01-18 13:57:07