Через append() создается форма, наполняется, но append'иться в div не хочет
$(document).ready(function() { $("button#reduct").click(function() { var id = $("span#block_id").text(); var name = $("h1#block_name").text(); var text = $("div#block_text").text(); if ($("span#block_menu").text() == "Этот блок отображается в меню") var menu = 1; else var menu = 0; $("h1#block_name").remove(); $("div#block_text").remove(); $("span#block_menu").remove(); $(this).remove(); $("div#content").append($("form#reduct_block")); $("form#reduct_block").append("input#name").append("textarea#text").append("input#menu").append("input#submit").append("button#cancel"); $("input#name").before("<h1>Редактирование блока</h1><br />Имя: ").attr("type", "input").attr("value", name); $("textarea#text").before("<br />Текст:<br />").val(text); $("input#menu").before("<br />Показывать этот блок в меню? ").attr("type", "checkbox"); $("input#submit").before("<br />").attr("value", "Сохранить").attr("method", "post").attr("action", "?id=block&block="+id+"&act=reduct"); $("button#cancel").attr("type", "submit").append("Отмена"); }); }); функция должна из некоторых элементов вытаскивать значения, эти элементы потом удалять, создать и отредактировать на фоне форму и вставить ее на место удаленных элементов. но на удалении элементов видимый результат заканчивается. может, конечно, форма на фоне создается, но по крайней мере она уж точно не вставляется. но если вставить, например, alert("test") в конец функции, то он выскочит, значит где-то я накосячил, скорее всего. не подскажете, в чем может быть проблема?.. |
первый раз вижу такую запись
append("input#name") думаю вам нужно append($("input#name")); |
$("form#reduct_block").append($("input#name")).append($("textarea#text")).append($("input#menu")).append($("input#submit")).append($("button#cancel")); $("input#name").before("<h1>Редактирование блока</h1><br />Имя: ").attr("type", "input").attr("value", name); $("textarea#text").before("<br />Текст:<br />").val(text); $("input#menu").before("<br />Показывать этот блок в меню? ").attr("type", "checkbox"); $("input#submit").before("<br />").attr("value", "Сохранить").attr("method", "post").attr("action", "?id=block&block="+id+"&act=reduct"); $("button#cancel").attr("type", "submit").append("Отмена"); $("div#content").append($("form#reduct_block")); теперь так, но все равно эффект тот же |
по моему первую строчку ещё можно вот так укоротить $("form#reduct_block").append($("input#name, textarea#text, input#menu"))
А вообще вы уверены что форму стоит переносить, а не проще ли её тупо создать заново там где вам угодно. А то у вас до попы изменений в этой форме. Ума немогу приложить чем оправдана такая сложная и бессмысленная метаморфоза. что касается ошибки вряд ли её можно определить на форуме без исходного html хотя бы. |
Цитата:
исходный HTML: <div id="content" name="content"> <span id="block_id" name="block_id" hidden>Block ID</span><h1 id="block_name" name="block_text">Block name</h1> <div id="block_text" name="block_text">Block content</div> <span id="block_menu" name="block_menu">Этот блок отображается в меню</span><br /> <button id="reduct" name="reduct">Редактировать</button> |
Действительно, все это делалось как-то кривовато. Я решил по-другому и проблема отпала сама собой...)
|
Часовой пояс GMT +3, время: 13:39. |