在对话框中动态创建文本

时间:2009-10-06 15:37:48

标签: jquery jquery-ui dialog

如何动态设置我正在打开的对话框的文本?我尝试了一些不同的东西,但他们都回复了一个空的对话框。

这是我目前的尝试:

$('#dialog').text('Click on the link to download the file:
'.data); $('#dialog').dialog("open");

5 个答案:

答案 0 :(得分:27)

为了获得最佳实践,请尝试在对话框div中放置一个div,然后将文本附加到该对话框中。

<div id="myDialog"><div id="myDialogText"></div></div>

然后设置内部Div的文本。这样可以更好地分离,所以你有

  • 用于对话操作的div
  • 和用于文本显示的div

然后,您可以使用

设置文本
jQuery("#myDialogText").text("your text here");

答案 1 :(得分:11)

以下是动态创建对话框并动态设置其消息的另一种方法:

$('<div></div>').dialog({
    modal: true,
    title: "Confirmation",
    open: function() {
      var markup = 'Hello World';
      $(this).html(markup);
    },
    buttons: {
      Ok: function() {
        $( this ).dialog( "close" );
      }
    }   });  //end confirm dialog

查看实际操作:http://jsfiddle.net/DYbwb/

答案 2 :(得分:4)

使用加号来连接字符串:

$('#dialog').text('Click on the link to download the file:
' + data);
$('#dialog').dialog("open");

答案 3 :(得分:1)

这是一个在jQueryui对话框中显示动态文本的示例。该文本来自ajax响应。消息如下所示(大于它出现!)。enter image description here

$(".info").click(function(event){
    event.preventDefault();
    $id = $(this).attr("id");
    $.ajax({
           type: "POST",
           url: 'my_code.php',
           data: {query:"info", rowid: $id},
           success: function(data) {
                try {
                   obj = JSON.parse(data);
                   var str = '';
                   for (var i in obj) {
                       str += i + ":" + obj[i] + "<br />";
                       if (i == "id") str += "<hr />";
                   }
                   $("#dialog-1").html(str).dialog();
                   $("#dialog-1").dialog('open');
                } catch (e) {}
           }
        });
});

答案 4 :(得分:0)

dialog("open");不是有效的jquery UI方法。 (以及Mike所说的关于与+而不是.

连接的内容

Check the documentation