2011-01-31 37 views
3

我需要将jQuery validate plugin绑定到我即时生成的表单。据我所知.live()是在jQuery中做到这一点的唯一方法。它似乎没有工作,至少我尝试的方式。我认为这是可行的,它只是eebkac!JQuery:将.validate插件绑定到.live

这工作得很好:

​​

这将生成语法错误:

$("form#form_CreateUser").live('validate', function() { 
    submitHandler: function(form) { 
    // do other stuff for a valid form 
    UserSubmit(); 
    } 
}); 
+0

请不要在堆栈溢出中使用URL缩写器。 – 2011-01-31 21:55:56

回答

14

这不起作用,因为你误会了怎么validate作品。它看起来像像事件处理程序的功能,如click,但它实际上不是。

clickbind('click', fn)的快捷方式。 validate通过使用bind不起作用。由于live实际上是使bind调用适用于尚不存在的元素的一种方法,因此它不适用于validate

这样做的最简单方法是创建一个函数,调用validate并在每次插入新内容时调用该函数。例如,如果您使用AJAX插入表单,则可以使用ajaxComplete函数:

function setupValidate() { 
    $("form#form_CreateUser").validate({ 
     submitHandler: function(form) { 
      // do other stuff for a valid form 
      UserSubmit(); 
     } 
    }); 
} 

$(document).ajaxComplete(setupValidate); // after every AJAX request 
setupValidate(); // right now 
+1

感谢您的支持。这对我也有帮助。 – 2011-09-23 06:07:26