Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Копировани clone (https://javascript.ru/forum/misc/45158-kopirovani-clone.html)

Scotti 17.02.2014 13:15

Копировани clone
 
Здравствуйте. Есть пару вопросов.
У меня есть блок
<div class="control-group stage">
    <label class="control-label">Этап работ:</label>
    <div class="controls">
        <input type="text" class="span4" id="name" name="people[0][name]"/>
    </div>
    <div class="controls">
        <div class="input-append date" id="datepicker-js" data-date="" data-date-format="dd-mm-yyyy">
            <input class="datepicker-input" id="date" name="people[0][date]" size="16" type="text"/>
            <span class="add-on"><i class="cus-calendar-2"></i></span>
        </div>
    </div>
</div>

и код
<script type="text/javascript">
    function Stage() {
        i = 0;
        ++i;
        $(".stage").clone(true)
        .appendTo("#clone_stage")
        .find('#name')
        .attr("id","name"+i);
    }
</script>

Цель: скопировать полностью верхний кусок html кода при нажатии на кнопку (неограниченное количество раз) при это избегая дубликатов id и name. при том name должен быть вида people[1][name] people[1][date], people[2][name] people[2][date] и так далее.
С копированием и заменой id вроде разобрался. Правильно ли?
И как правильно менять атрибуты после клонирования, непосредственно у склонированного элемента, а не занимаясь поиском find().
и второе. Как при последующем запуске функции сохранять инкремент предыдущий, ума не приложу.

рони 17.02.2014 13:31

Цитата:

Сообщение от Scotti
Как при последующем запуске функции сохранять инкремент предыдущий

вынесите i из функции 3 строку

c name точно также как с id

danik.js 17.02.2014 13:45

Цитата:

Сообщение от Scotti
people[1][name] people[1][date], people[2][name] people[2][date]

На сервере PHP скрипт крутится? Тогда можно упростить:
people[][name] people[][date], people[][name] people[][date]
(ASP вроде также умеет)
А айдишники вобще в топку нафиг.


Часовой пояс GMT +3, время: 16:27.