Что-то не так делаю с clone()
Здравствуйте.
Делаю добавление полей inputов при на жатии на кнопку. Вот ф-я добавления: function add_elem() { $('.element').last().clone().appendTo($('#container_elements')).hide().show(400); } Почему то всеравно в копии сохраняется значения предыдущего поля, хоть никаких аргументов в clone нет. Пробывал по разному, и false ставил в аргументы, и false,false Спасибо. |
tiho,
Приведите минимальный HTML код для данного примера |
Ну так это нормальное поведение для clone, разве нет?
The .clone() method performs a deep copy of the set of matched elements, meaning that it copies the matched elements as well as all of their descendant elements and text nodes. |
... <script type="text/javascript"> function add_elem() { $('.element').last().clone().appendTo($('#container_elem')).hide().show(400); } </script> ... <div id="container_elem"> <div id="element" class="element" > <input type="text" placeholder="Введите, за что расходы" name="input_za_chto" /> <input type="text" placeholder="Введите сумму расхода или процент" name="input_summa" class="input_summa" /> </div> </div> <span onclick="add_elem()">+ Добавить расход</span> |
Цитата:
|
Цитата:
Цитата:
Приведите вид исходного input и преобразованно-копируемого |
Просто нужно чтобы элемент добавлялся после последнего такогоже в дереве, с пустыми полями.
|
Цитата:
|
2 однотипных инпута:
<input type="text" placeholder="Введите сумму расхода или процент" name="input_summa" class="input_summa" /> его копия - точно такая же (смотрел через хромовский дебагер) |
Цитата:
|
такой же, только с пустыми полями инпутов :)
|
Цитата:
|
да! :)
|
$('.element').last().clone().val("").appendTo($('#container_elements')).hide().show(400); Вот так наверно? |
skfyann, не, у меня в копии не только инпуты) решил уже вот таким способом:
..... hide().show(400).find("input").val("") Хотя готов поклясться что несколько действий назад мой код работал без этих find а сразу делал пустую копию. паранормальное явление 5. skfyann, deff, спасибо за помощь. |
tiho, чистить значения после того как показали пользователю имхо не хорошо.
|
Цитата:
$('.element').last().clone().hide().val("").appendTo($('#container_elements')).show(400) |
skfyann, пользователь то их не увидел. Какая разница когда их чистить в данном случае, если они всеравно сначала создаются, а потом их убирать надо?
|
Цитата:
.appendTo($('#container_elements')).hide().show(400).find("input").val(""); Добавить элемент -> спрятать -> показать -> найти все инпуты -> их почистить |
Цитата:
var a = $('.element').last().clone().addClass("add").hide(); a.find("input").val(""); a.appendTo($('#container_elements')); $('#container_elements .add').show(400).removeClass("add") |
так ты наверно имеешь ввиду что увидел "браузер"?) потому что на экране ничего появляться не успевает. А в каком порядке чистить - я считаю не важно (дело вкуса) т.к. они наверно все равно память уже заняли сколько им надо, в независимости от того когда их почистили. Поправь меня если не прав.
|
Часовой пояс GMT +3, время: 10:23. |