jquery使用动态表单验证插件

时间:2012-06-08 16:34:35

标签: javascript jquery ajax jquery-validate

如果尚未创建表单,如何使用此代码(来自demo):

jQuery("#form").validate({
  submitHandler: function(form) {
    jQuery(form).ajaxSubmit({
      target: "#result"
    });
  }
});

一种不起作用的方法是在on('click',上调用验证:

$(document.body).on('click', '.submitBtn', function(){
   var $form =$('form'+this.id);
       $form.validate({
         submitHandler: function($form) {
           $form.ajaxSubmit({
             target: "#result"
           });
         }
       });
});

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

创建表单后尝试使用jQuery("#form").validate().form()http://docs.jquery.com/Plugins/Validation/Validator/form

$(document.body).on('click', '.submitBtn', function(){
   var $form =$('#form'+this.id);
       $form.validate({
         submitHandler: function($form) {
           $($form).ajaxSubmit({  //need to properly refer to jQuery object
             target: "#result"
           });
         }
       }).form();
});

答案 1 :(得分:0)

我认为对类似问题的回答可以帮助你解决很多问题https://stackoverflow.com/a/4359915/351366

以下是让您的代码更具针对性的一个镜头

创建一个自定义事件,一旦表单出现在页面上就会触发

$(document).bind('bindForm', function (e) {
    jQuery("#form").validate({
        submitHandler: function(form) {
          jQuery(form).ajaxSubmit({
             target: "#result"
          });
        }
    });
});

然后在加载表单时,触发自定义事件

$(document).trigger('bindForm'); //trigger our validate form

如果您想检查您的表单在其他功能中是否有效

$(".submitBtn").live("click",function() {
    if (!$("#form").validate().form()) {
        return;
    }
});