2

div からダイアログを読み込んでいます

<div id="dialog-message" title="Send Message" style="display: none;">
<form id ="form_message">
<textarea name="message_field" id="message_field" rows="8" cols="62" class="ui-widget-content ui-corner-all" style="resize: none;"></textarea>
</form>

$(document).ready(function() 内にダイアログを作成し、リンクを使用して開きます。ダイアログの送信時に、ダイアログの内容を戻りメッセージで変更し、ユーザーはウィンドウを閉じることができます。

// dialog create
$("#dialog-message").dialog({
autoOpen: false,
resizable: false, width: 520, height: 320,
modal: true,
buttons: {"Send": { text: "Send", id: "btn_send", click: function () {},
close: function() {if($('#form_message').length) {$(this).find('form')[0].reset();} }
});

//link to open dialog
$('#dialog_link').click(function(){$("#dialog-message").data("msg_data", {msg_from: 14, msg_to: 15}).dialog("open"); return false; });

//operations made on submit dialog
$('#btn_send').hide();
$('#dialog-message').html(data.error);

私が抱えている問題は、ダイアログをもう一度開くと、戻りメッセージが残り、元の div コンテンツが読み込まれないことです。どうすればこれを達成できますか? close イベントでダイアログを破棄しようとしましたが、ダイアログがまったく開きません。

4

1 に答える 1

2

変更する前に、メッセージ フィールドの内容を保存してください。次のようにします。

var message_field_html = "";

function openDialog(){ //or whatever function calls your dialog
    if(message_field_html != ""){
        $('#dialog-message').html(message_field_html);
    }
    //do things
}

function changeDilogText(){ //or whatever function changes the text
    message_field_html = $('#dialog-message').html()
    $('#dialog-message').html(data.error);
}

[編集] あなたの質問に合わせてコードを編集しました

于 2013-08-29T10:37:13.970 に答える