2010-02-08 89 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