【问题标题】:Dynamically create text in dialog box在对话框中动态创建文本
【发布时间】:2010-12-04 07:51:34
【问题描述】:

如何动态设置正在打开的对话框的文本?我尝试了一些不同的方法,但它们都以一个空对话框响应。

这是我目前的尝试:

$('#dialog').text('点击链接下载文件:
'.data); $('#dialog').dialog("open");

【问题讨论】:

  • 哈哈,在我写之前的 php 太多了;不过感谢您的讽刺,这很有帮助!

标签: jquery jquery-ui dialog


【解决方案1】:

为获得最佳实践,请尝试在对话框 div 中放置一个 div,并在其中添加文本。

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

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

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

然后你可以设置文本

jQuery("#myDialogText").text("your text here");

【讨论】:

    【解决方案2】:

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

    $('<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/

    【讨论】:

    • div 应该在关闭时被销毁,不是吗?另外我不喜欢在公开事件上设置文本。您可以创建一个元素,调用对话框并在关闭时将其销毁:jsfiddle.net/06nLLtbb/1
    • 在你发布这篇文章大约一年后,我很高兴你这样做了。
    • 关于销毁“on-the-fly”对话框元素的相关/相关链接:stackoverflow.com/q/2864740/2943403
    【解决方案3】:

    使用加号连接字符串:

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

    【讨论】:

      【解决方案4】:

      这是一个在 jQueryui 对话框中显示动态文本的示例。文本来自 ajax 响应。消息如下所示(比显示的要大!)。

      $(".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) {}
                 }
              });
      });
      

      【讨论】:

        【解决方案5】:

        dialog("open"); 不是有效的 jquery UI 方法。 (以及迈克所说的与+而不是.连接

        Check the documentation.

        【讨论】:

          猜你喜欢
          • 2012-06-24
          • 2018-07-28
          • 2013-10-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-21
          相关资源
          最近更新 更多