jQuery:将ajaxForm绑定到通过.load()加载的页面上的表单

时间:2010-02-05 17:03:19

标签: jquery ajax forms bind ajaxform

我正在使用jQuery的ajaxForm插件在我的webapp上提交表单。但是,在应用程序的一个部分中,我正在通过jQuery的.load()

加载一些带有表单的内容。

问题在于我无法将ajaxForm绑定到通过ajax加载的表单。

我试过这段代码无济于事:

 $('#viewRecordBtn').live('click', function() { // Handle the event when the 'view record' button is clicked
    $("#tab2").load('ajax/viewRecord.php'); // Load the record and the form into tab 2
    $('#formAddRecord').ajaxForm(formAddRecordOptions); // Bind the form
 });

任何帮助都非常感谢!!


编辑:谢谢你们!这非常有效。

4 个答案:

答案 0 :(得分:7)

我认为你应该将绑定代码放入回调中,因为加载是异步的:

 $('#viewRecordBtn').live('click', function() { // Handle the event when the 'view record' button is clicked
    $("#tab2").load('ajax/viewRecord.php', function() {
                    $('#formAddRecord').ajaxForm(formAddRecordOptions); // Bind the form
               }); // Load the record and the form into tab 2    
 });

答案 1 :(得分:5)

如果您使用最新的jQuery Form Plugin和jQuery 1.7+,您可以使用'delegation'选项,如下所示:

$('#myForm').ajaxForm({
    delegation: true,
    target: '#output'
});

其描述如下:http://malsup.github.com/jquery.form.js

答案 2 :(得分:1)

这是因为您在.load()尚未完成时绑定了ajaxForm。试试这个:

$('#tab2').load('ajax/viewRecord.php', function() {
  $('#formAddRecord').ajaxForm(formAddRecordOptions);
});

答案 3 :(得分:0)

$('#viewRecordBtn').live('click', function() { 
   $("#tab2").load('ajax/viewRecord.php', function(){
       $('#formAddRecord').ajaxForm(formAddRecordOptions); // Bind the form
   }); // Load the record and the form into tab 2

});