【问题标题】:JQuery UI dialog reload original contentJQuery UI 对话框重新加载原始内容
【发布时间】:2013-08-29 10:20:28
【问题描述】:

我正在从 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 内容。 我怎样才能做到这一点?我试图在关闭事件中销毁对话框,但对话框根本没有重新打开。

【问题讨论】:

  • 你能贴出你用来设置对话框内容的javascript吗?另外,为什么表单的 id 中有转义字符?
  • 我更新了原帖,我删除了转义字符,但是我忘记了一些,我正在从 php 创建 JS

标签: javascript jquery dialog jquery-ui-dialog


【解决方案1】:

只需在更改之前保存消息字段的内容......就像这样:

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);
}

[编辑] 编辑代码以解决您的问题

【讨论】:

  • 很棒的解决方案。解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
相关资源
最近更新 更多