我有一个jquery确认对话框,它接受一些值并询问我们是否要删除它们的记录。单击按钮时会提示对话框。问题是,如果我只是关闭对话框(不选择也不选择也不是),下次打开该对话框时,它将显示两次消息。如果我第三次这样做,它会显示3次等等......否则它可以正常工作。但我也想解决这个问题。 注意:同一对话框中会显示多条消息。
这是我的代码:
<script>
$(document).ready(function(){
$(".delete-button").click(function() {
var $row = $(this).closest("tr"); // Find the row
var names = $row.find(".name").text(); // Find the name
var surname = $row.find(".surname").text(); // Find the surname
$("#dialog").dialog({
autoOpen: false,
buttons : {
"Yes" : function() {
$.ajax({ type: "POST", url: "delete_lecturer.php", data: { x: names, y: surname} }) //sends post query to delete the selected row
.done(function( msg ) {location.reload();}) //reloads page in order for the change to take become evident
},"No" : function() {$(this).dialog("close");}
}
});
$("#dialog").dialog("open");
$('<p>Are you sure you want to delete lecturer '+names+' '+surname+'?</p>').appendTo('#dialog');
});
});
</script>
在这里我为它创建了div:
<div id="dialog" title="Action can not be reversed!"></div>
我没有将消息放在div中,因为我需要在消息中传递值name和surname。但我认为这导致了这个问题。
答案 0 :(得分:1)
每次点击都需要清除$("#dialog")
的内容,否则每次点击都会在div中添加一个额外的段落。
更改
$("#dialog").dialog("open");
到
$("#dialog").html('').dialog("open");
甚至
$("#dialog").html('<p>Are you sure you want to delete lecturer '+names+' '+surname+'?</p>').dialog("open");
答案 1 :(得分:0)
$("#dialog").empty().dialog("open");