5

ajax 调用后,我将 div 附加buf到某个消息框,但重新打开对话框后会出现文本。在 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
    });
}
4

1 回答 1

0

.html()知道 IE6-8 的问题

尝试替换以下

$('#message_box').html(buf);

$('#message_box').empty().html(buf);
于 2013-07-18T07:46:46.710 回答