我有一个对话框窗口,其中有一些确认内容作为表单提交的结果:
$('#newUserDialog').dialog({
autoOpen: false,
width: 600,
modal: true,
resizable: false,
close: function() {
window.location.reload(true);
},
buttons: {
"Complete": function() {
$.ajax({
type: "POST",
url: "checkData.php",
data: formData+"&complete=1",
success: function(result){
alert(result);
$('#newUserDialog').html('User has been built');
}
});
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
当用户点击完成时,它会触发ajax调用并执行checkdata.php。完成后我想删除"完成"和"取消"并添加一个按钮"继续"。 “继续”按钮将重新加载页面。我怎么能做到这一点?
目前在此代码中,它可以按预期工作,但如果用户在点击完成之前不喜欢他在确认窗口中看到的内容,则如果他点击取消,则会重新加载页面。我只想在ajax调用后重新加载页面。
答案 0 :(得分:1)
您可以使用以下命令在ajax回调中添加新按钮;
var buttonSet = $('#newUserDialog').parent().find('.ui-dialog-buttonset');
var newButton = $('<button>Continue</button>');
newButton.button().click(function () {
window.location.reload(true);
});
buttonSet.html(newButton);
您可以在此处查看演示: jsfiddle
答案 1 :(得分:0)
<script>
var myModalExample;
$(function() {
myModalExample = $( "#newUserDialog" ).dialog({
autoOpen: true,
width: 600,
modal: true,
resizable: false,
close: function() {
window.location.reload(true);
},
buttons: {
"Complete": function() {
$.ajax({
type: "POST",
url: "checkData.php",
data: formData+"&complete=1",
success: function(result){
myModalExample.dialog({ buttons: [ { text: "Continue", click: function() { $( this ).dialog( "close" ); } } ] });
}
});
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
});
</script>