我有一個非常簡單的場景,我想使用JQuery的ajax()方法張貼表單,但在實際執行之前執行請求一些來自用戶的確認帖子。JQuery確認對話框後按下提交按鈕,但在發佈之前使用.ajax()
我有一個JQuery UI對話框,並帶有本地化按鈕,以防萬一您想知道下面所有按鈕的代碼是關於什麼的。
這是我到目前爲止的代碼:
var i18n_deleteButtons = {};
i18n_deleteButtons[i18n.dialogs_continue] = function() {
return true;
$(this).dialog('close');
};
i18n_deleteButtons[i18n.dialogs_cancel] = function() {
return false;
$(this).dialog('close');
};
$('#delete-dialog').dialog({
open: function() {
$(this).parents('.ui-dialog-buttonpane button:eq(1)').focus();
},
autoOpen: false,
width: 400,
resizable: false,
modal: true,
buttons: i18n_deleteButtons
});
$("form#form_attachments").submit(function (event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $(this), url = $form.attr('action');
// build array of IDs to delete (from checked rows)
var jdata = { 'attachmentIdsToDelete': [] };
$('input:checked').each(function() {
jdata['attachmentIdsToDelete'].push($(this).val());
})
$.ajax({
beforeSend: function (request) {
// Return false if you don't want the form submit.
$('#delete-dialog').dialog('open');
},
url: url,
type: "POST",
dataType: "json",
data: jdata,
traditional: true,
success: function (msg) {
$('#msg').html(msg);
}
});
});
對話實際上是打開了罰款,但在點擊任何按鈕的結果沒有發生的事情。帖子不會發生,無論點擊哪個按鈕,對話框都不會關閉。
我該如何做這項工作?
Theres方式太多的絨毛去那裏。核心問題有一個簡單的解決方案。只需添加一個確定是否在點擊時執行POST的confitmation prmpt。但是,你需要先修剪這個代碼森林。 –
這裏有一個絨毛的原因。本地化UI對話框要求以這種方式完成,不存在更短的方式。那是一回事。另一件事就是這樣,至少我們儘可能地分離一些問題。也許你可以將解決方案發布到核心問題上,但它必須包含對本地化對話確認和JSON POST的支持? – mare