我正在使用jQuery的活動查詢插件來附加動態行爲以形成元素並創建ajax表單。我面臨的問題如下:向服務器發送請求兩次
在提交的響應中,如果我沒有再次對元素調用livequery,那麼新加載的表單不會獲得所需的行爲。但是,如果我再次提交LiveCountry,則表單將不止一次提交。
其實計數每次都會增加。我嘗試使用過期。但這根本沒有幫助。有關如何實現這一點的任何意見。
我想要做的是創建所有形式的類js-ajax-表單作爲通過ajax提交的表單。由此產生的內容也是一種應該保持相同行爲的形式。這是必須通過ajax提交。
希望你的指導。
$.fn.fajaxform = function() {
var container = null;
$(this).livequery(
'submit',
function(e) {
var $this = $(this);
container = $this.parent();
$this.ajaxSubmit({
beforeSubmit : function(formData, jqForm, options) {
$('input:file', jqForm[0]).each(function(i) {
if ($('input:file', jqForm[0]).eq(i).val()) {
options['extraData'] = {
'is_iframe_submit' : 1
};
}
});
container.block({
message : '<h1><img src="/img/busy.gif" /> Loading please wait...</h1>'
});
},
success : function(responseText, statusText) {
redirect = responseText.split('*');
if (redirect[0] == 'redirect') {
location.href = redirect[1];
} else if ($this.metadata().container) {
$('.' + $this.metadata().container).html(
responseText);
} else {
$this.parents('div.js-responses').eq(0).html(
responseText);
}
$('.js-ajax-form').each(
function()
{
if (this.expire)
{
this.expire();
}
}
);
$('.js-ajax-form').fajaxform();
container.unblock();
}
});
return false;
});
};
是的腳本只包含一次,但是我注意到的一件事是,因爲我正在使用livequery,因此我不需要調用顯式的expire()。 Livequery應該可以解決這個問題。如果我不做我在做的事情,那麼隨後加載的表單不會獲得ajax行爲,如果我這樣做,那麼它會多次提交。 – user210504