2010-09-26 55 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