我在项目中使用JQuery对话框向用户显示餐厅菜单。 当用户设定食物数量时,它也会显示订单价格。所有这些都发生在对话中。所以用户接受它的命令并提交it.order表单是另一个php文件,它呈现为json并传递给包含对话框的div。一切都很好,第一次。但如果用户想要提交另一个订单则无效。不是ajax不提交表单或其他任何东西,用户必须重新加载页面到对话框再次正常工作。 这是我的对话框代码:
$('#dialog-modal').dialog({
autoOpen: false,
resizable: false,
width:900,
height:500,
hide: function () {
$(this).fadeOut();
},
show: function () {
$(this).fadeIn();
},
open: function() {
$('#dialog-modal').empty();
$.ajax('<?php echo url()?>/admin/preload',{
dataType:'json',
cache: false,
success:function(data){
$('#dialog-modal').html(data.content);
}
});
}
});
打开功能中的ajax正在加载餐厅的菜单。 这是我的提交按钮。有两个提交按钮,一个用于提交和关闭对话框,另一个用于提交,另一个用于提交对话框。
$('#submit').on('click',function(){
var data = $('#form').serialize();
$.post('<?php echo url()?>/admin/add-food',data);
$('#dialog-modal').dialog('close');
});
$('#newSubmit').on('click',function(){
var data = $('#form').serialize();
$.post('<?php echo url()?>/admin/add-food',data);
$('#dialog-modal').dialog('close');
$('#dialog-modal').dialog('open');
});
修改 如果我在关闭函数中销毁对话框,它在所有情况下都能正常工作,但在提交和新按钮中关闭对话框并且不打开新对话框
答案 0 :(得分:0)
我认为,可能是你的动态按钮渲染。所以我们需要为该按钮添加事件监听器。以下代码。
$(document).on('click','#submit',function(){
var data = $('#form').serialize();
$.post('<?php echo url()?>/admin/add-food',data);
$('#dialog-modal').dialog('close');
});
$(document).on('click','#newSubmit',function(){
var data = $('#form').serialize();
$.post('<?php echo url()?>/admin/add-food',data);
$('#dialog-modal').dialog('close');
$('#dialog-modal').dialog('open');
});