Динамически создавать текст в диалоговом окне
Как я могу динамически установить текст диалогового окна, которое я открываю? Я пробовал несколько разных вещей, но все они отвечают пустым диалоговым окном.
Вот моя текущая попытка:
$('#dialog').text('Click on the link to download the file:
'.data);
$('#dialog').dialog("open");
Ответы
Ответ 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/
Ответ 3
Используйте символ плюса для объединения строк:
$('#dialog').text('Click on the link to download the file:
' + data);
$('#dialog').dialog("open");
Ответ 4
Вот пример, показывающий динамический текст в диалоговом окне 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) {}
}
});
});
Ответ 5
dialog("open");
недействительный метод пользовательского интерфейса jquery. (И то, что сказал Майк об объединении +
вместо .
Проверьте документацию.