Когда вы создаете диалоговое окно, оно добавляется в конце <body>
, просто потому, что вы уничтожаете диалоговое окно, не означает, что элементы в нем исчезают, они просто возвращаются на свое место или вэтот случай все еще находится в конце <body>
, вам также нужно .remove()
этих элементов, например:
$(this).dialog("destroy").remove();
В противном случае (в настоящее время) вы добавляете *Элемент 1009 * new #message
каждый раз, и то, что вы видите, является классической проблемой дублирования идентификатора, он получает значение первого (первого, который вы добавили ... который никогда не уходил).
В целом, есть еще несколько проблем, например, IE <9 не имеет <code>String.prototype.trim(), поэтому ваше значение взорвется, как если бы в нем было что-то вроде &
.Позвольте jQuery кодировать ваши значения, например так:
function message(url) {
$("<div>enter message: <textarea name='message' id='message'></textarea></div>")
.dialog(setProps(url));
}
function setProps(url) {
return {
buttons: {
"ok": function() {
$.get('/act', { url: url, message: $.trim($("#message").val()) },
function(data) {
$("#content").load('/react?url=' + url);
}
);
$(this).dialog("destroy").remove();
}
}
}
}