Динамически создавать текст в диалоговом окне - PullRequest
12 голосов
/ 06 октября 2009

Как я могу динамически установить текст диалогового окна, которое я открываю? Я пробовал несколько разных вещей, но все они отвечают пустым диалоговым окном.

Вот моя текущая попытка:

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

Ответы [ 5 ]

27 голосов
/ 06 октября 2009

Для лучшей практики попробуйте поместить div в div вашего диалога и вместо этого добавить к нему текст.

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

и затем настройте текст внутреннего Div. Это делает для лучшего разделения, поэтому у вас есть

  • div для манипулирования диалогами
  • и div для отображения текста

Затем вы можете установить текст с помощью

jQuery("#myDialogText").text("your text here");
11 голосов
/ 18 февраля 2014

Вот альтернативный способ создания диалогов на лету и динамической установки их сообщений:

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

4 голосов
/ 06 октября 2009

Используйте символ плюс для объединения строк:

$('#dialog').text('Click on the link to download the file:
' + data);
$('#dialog').dialog("open");
1 голос
/ 09 июня 2015

Вот пример, показывающий динамический текст в диалоговом окне 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) {}
           }
        });
});
0 голосов
/ 06 октября 2009

dialog("open"); не является допустимым методом пользовательского интерфейса jquery. (И что сказал Майк о конкатенации с + вместо .

Проверьте документацию .

...