我想從內部關閉jquery對話框,但它不起作用。無法關閉從內部的jquery對話框
我已經使用了我能找到的所有閉合變體,但都沒有工作。
該對話框從主頁面調用。當我按下對話框上的提交按鈕時,表單被髮布(這一切都正常),但關閉事件不會觸發。
$(document).ready(function() {
$("#eventForm").submit(function(e) {
alert("HELLO");
//Cancel the link behavior
e.preventDefault();
if(document.eventForm.title.value == ""){
alert("<?php echo $lang['titlemissing'] ?>");
return;
}
if(document.eventForm.activity.value == ""){
alert("<?php echo $lang['activitymissing'] ?>");
return;
}
var url = "calendar/eventsubmit.php<?php echo $qstr ?>";
$.post(
"calendar/eventsubmit.php<?php echo $qstr ?>",
$(this).serialize(),
function(data){
alert("closing");
}
);
// NONE of the work ???
$(this).closest('.ui-dialog').dialog('close');
$(this).closest('#dialog').dialog('close');
$(this).closest('.ui-dialog-content').dialog('close');
$(this).dialog('destroy');
$(this).dialog('close');
$(this).closest('#dialog').close();
$('#dialog').dialog('close');
});
});
DOM確實包含ui-dialog和ui-dialog-content元素。
<div tabindex="-1" class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable" role="dialog" aria-labelledby="ui-dialog-title-dialog" style="z-index: 1004; >
<div class="window ui-dialog-content ui-widget-content" id="dialog" style="min-height: 0px; width: auto; display: block; height: 105px;">
編輯
了很多調整它的後現在的作品。關鍵是,我沒有包含jquery-custom css。相反,我用我自己的css也有一個ui-dialog元素。我不確定,但如果這是解決這個問題的方法。但這是我最好的猜測。
這是最終的代碼。
<script>
// submit the event (add, update)
$(document).ready(function() {
$("#eventForm").submit(function(e) {
//Cancel the link behavior
e.preventDefault();
if(document.eventForm.title.value == ""){
alert("<?php echo $lang['titlemissing'] ?>");
return;
}
if(document.eventForm.activity != undefined){
if(document.eventForm.activity.value == ""){
alert("<?php echo $lang['activitymissing'] ?>");
return;
}
}
$.post(
"calendar/eventsubmit.php<?php echo $qstr ?>",
$(this).serialize());
//close current dialog
$(this).closest('.ui-dialog-content').dialog('close');
// show OK
$("#dialog").load("calendar/actionsuccess.php", function(){
$('#dialog').dialog({
title : 'Success',
autoResize : true,
width: 'auto',
close: function(event, ui) { window.location.href = "calendar.php"; }
})
});
});
});
</script>
感謝, 科恩
你把'$ .post'完成回調內部對話結束? – Alnitak
是的,但這也不起作用。我試過hide()並且這個工作。 –