【问题标题】:Jquery Validation Plugin, dynamic form validationJquery Validation Plugin,动态表单验证
【发布时间】:2013-01-07 17:50:35
【问题描述】:

我正在使用Jquery Validation Plugin 来加载通过 Ajax 加载的表单(动态表单)。我知道从 Jquery 1.4 开始,现在可以提交实时事件。现在的问题是我想在验证动态表单后显示确认消息。我的代码如下所示:

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

它没有按预期工作。不知何故,首先显示确认,然后在我第二次提交表单时,这就是验证发生的时间。有什么想法吗?

【问题讨论】:

    标签: jquery-validate jquery


    【解决方案1】:

    不知怎的,这似乎奏效了:

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

    【讨论】:

    【解决方案2】:

    使用validate options中的submitHandler函数:

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

    来自文档 - submitHandler

    表单有效时处理实际提交的回调。获取表单作为唯一参数。替换默认提交。验证后通过 Ajax 提交表单的正确位置。

    【讨论】:

    • 我试过了。但真正的问题是处理动态表单元素。这就是我使用 Jquery 的 live() 的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多