2010-02-08 91 views
2

我使用Jquery Validation Plugin來通過Ajax(動態表單)加載表單。我知道,從Jquery 1.4開始,提交的現場活動現在是可能的。現在的問題是我想在動態表單驗證之後顯示確認消息。我的代碼如下所示:Jquery驗證插件,動態表單驗證

$('.dynamicForm').live('submit',function(){ 
    $(this).validate(); 
    if($(this).valid()){ 
     if(!confirm('Are you sure?')) 
     e.preventDefault(); 
    } 
}); 

它沒有按預期工作。不知何故,確認首先顯示,然後在我提交表單的第二次,那是驗證發生的時間。有任何想法嗎?

回答

3

不知怎的,這似乎工作:

$('.dynamicForm').live('mouseover',function(){ 
    $(this).validate({ 
     submitHandler:function(form){ 
      if(confirm("Are you sure?")){ 
       form.submit(); 
      } 
     } 
    }); 
}); 
3

使用可用的submitHandler功能在validate options

$(".dynamicForm").validate({ 
    submitHandler: function(form) { //Only runs when valid 
    if(confirm('Are you sure?')) 
     form.submit(); 
    } 
}) 

從文檔 - submitHandler

回調處理實際當表單是有效的提交。獲取表單作爲唯一的參數。替換默認的提交。經過驗證後,通過Ajax提交表單的正確位置。

+0

我已經試過了。但真正的問題是處理動態表單元素。這就是爲什麼我使用jquery的live()。 – codegy 2010-02-08 04:52:59