ajax 呼び出しの後、メッセージ ボックスに divbuf
を追加していますが、ダイアログを再度開いた後にテキストが表示されます。Chrome、firefox、IE 8 では問題なく動作しますが、IE 7 では動作しません。
編集済み:リンクをクリックするとダイアログウィンドウが開きます。次に、ajax リクエストを実行してメッセージを取得します。このメッセージは、ダイアログのボタンをクリックした後、ダイアログ ウィンドウ (一部の div) に表示されます。ただし、IE7 では、ダイアログ ウィンドウを再度開いた後にメッセージが表示されます。
$("#promised_pay_dialog").dialog({
buttons: {
"some button": function(){
if ($('#confirm').is(':checked')) {
$.ajax({
url: 'ajax/promisedPayment',
type: "POST",
data: {
subsId:$("#sid").val()
},
success: function(buf){
$('#message_box').html(buf);
return false;
}
});
}
else {
alert("some message");
}
},
"some button": function() {
$(this).dialog("close");
}
},
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
},
modal: true,
resizable: false,
width: 550,
height: 250
});
問題を解決しましたが、満足のいくものではありませんでした:
リンクをクリックしたら、createDialog("")
引数なしで関数を呼び出します。ajax リクエストの後、メッセージを受け取り、 を呼び出しますcreateDialog(buf)
。しかし、それは良い解決策ではないと思います。何か案は?
function createDialog(mess){
$('#message_box').html(mess);
$("#promised_pay_dialog").dialog({
buttons: {
"some button": function(){
if ($('#confirm').is(':checked')) {
$.ajax({
url: 'ajax/promisedPayment',
type: "POST",
data: {
subsId:$("#sid").val()
},
cache:false,
success: function(buf){
createDialog(buf);
}
});
}
else {
alert("some message");
}
},
"some button": function() {
$(this).dialog("close");
}
},
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "blind",
duration: 1000
},
modal: true,
resizable: false,
width: 550,
height: 250
});
}