2010-09-26 48 views
7

所以我翻动“编辑”的形式为给ajaxForm下列要求:jQuery Form插件 - 如何制作ajaxForm()“live”?

$('#reviewForm').ajaxForm({ 
    success: function (response) { 
     $('#bookReview').html(response); 
    } 
}); 

这将返回相同的形式,可以在必要时再次编辑。然而,第二个表单提交不再具有附加的ajaxForm(),这是有道理的。

如何确保这种形式始终是一个给ajaxForm,不管有多少意见已经发生,类似活()函数是如何工作的?

回答

7

您可以包括像响应ajaxForm电话:

<!-- the html for the form --> 
<script type="text/javascript"> 
    $('#reviewForm').ajaxForm(); 
</script> 

,或者你可以做它作为成功的部分功能:

function ajaxify(response, status, xhr, form){ 
    var review = $('#bookReview').html(response); 
    $('form#reviewForm', review).ajaxForm({ 
     'success': ajaxify 
    }); 
} 

$('#reviewForm').ajaxForm({ 
    'success': ajaxify 
}); 

我推荐后者。

+1

嗯,有那第二个,不是它缺少一些信息。到底?这就像一个永无止境的冗余,不是吗? – asfsadf 2010-09-26 03:45:42

+0

哦,我明白了什么youre说......好吧,你可以只是让另一个函数...生病更新 – prodigitalson 2010-09-26 03:47:00

+0

我的大脑是在海里。 4个参数来自哪里? Javascript对我来说完全是陌生的。谢谢。 – asfsadf 2010-09-26 04:05:28

11
$('#myFormId').live('submit', function() { 
    // submit the form 
    $(this).ajaxSubmit(); 
    // return false to prevent normal browser submit and page navigation 
    return false; 
}); 

对来自http://jquery.malsup.com/form/#api的ajaxSubmit进行了细微修改。

2

试试这个

$('#reviewForm').live('submit', function() { 
    $(this).ajaxSubmit({ 
     success:function(){ 
      $('#bookReview').html(response); 
     }, 
     resetForm:true 
    }); 
    return false; 
}); 
7

从文档:

代表团

真正使事件代表团支持需要的jQuery V1.7 +

// prepare all existing and future forms for ajax submission 
$('form').ajaxForm({ 
    delegation: true 
}); 
+0

的能否请您提供一个链接到您在哪里找到的文件?我搜索到的http://www.malsup.com/jquery/form/,也没有连一句话'delegation' – user907860 2012-10-16 11:09:06

+0

https://github.com/malsup/form – younes0 2012-10-17 06:24:47

+0

真的很容易的解决方案,为我工作好,谢谢您。 – jonaglon 2015-03-03 09:21:30