2009-10-06 2 views
11

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

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

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

Ничего себе. Конкатенация строк. Это тяжело ... –

+3

ha, слишком много php, прежде чем я это написал; спасибо за сарказм, хотя это было полезно! – acedanger

ответ

25

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

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

, а затем в результате чего вы создадите для лучшего разделения, поэтому у вас есть

  • a div for dialog manipulatio п
  • и DIV для отображения текста

Вы можете установить текст с

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

работал отлично. Спасибо за помощь! – acedanger

+1

Вы наиболее востребованы :) – Evildonald

+0

Не работает для динамических заголовков. –

4

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

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

dialog("open"); не является допустимым метод JQuery UI. (А что сказал Майк о конкатенации с + вместо .

Check the documentation.

+0

из документа docs() .dialog ('open') - http://jqueryui.com/demos/dialog/ – acedanger

9

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

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

Дива должен быть уничтожен на близком расстоянии, не так ли? Также мне не нравится устанавливать текст в открытое событие. Вы можете создать элемент, вызвать диалог и уничтожить его по закрытию: http://jsfiddle.net/06nLLtbb/1/ – jelhan

+2

это примерно через год после того, как вы разместили это, и я очень рад, что вы это сделали. – arcadeRob

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) {} 
      } 
     }); 
}); 
Смежные вопросы