Клонирование формы в jQuery и увеличение индекса - PullRequest
1 голос
/ 02 ноября 2010

Это кажется относительно простым, я просто озадачен синтаксисом jQuery.

В основном я хочу взять эту форму:

<div class="me_signup">
  <input type="text" name="referral[0][name]" id="referral_0_name">
  <br>
  <input type="text" name="referral[0][email]" id="referral_0_email">
</div>

И продублировать ее кнопкой и увеличить переменнуюномер ..

$(".add_another_button").click(function(){
    ...
};

Ответы [ 2 ]

6 голосов
/ 02 ноября 2010

Что-то вроде это ?

$(".add_another_button").click(function() {
    var $newdiv = $(".me_signup:last").clone(true);
    $newdiv.find('input').each(function() {
        var $this = $(this);
        $this.attr('id', $this.attr('id').replace(/_(\d+)_/, function($0, $1) {
            return '_' + (+$1 + 1) + '_';
        }));
        $this.attr('name', $this.attr('name').replace(/\[(\d+)\]/, function($0, $1) {
            return '[' + (+$1 + 1) + ']';
        }));
        $this.val('');
    });
    $newdiv.insertAfter('.me_signup:last');
});
0 голосов
/ 02 ноября 2010

Вы можете поместить все эти html в переменную и использовать метод .append (), чтобы добавить это к определенному элементу DOM. И, если вы клонируете это, обязательно измените «id» на «class», потому что id должен быть уникальным на каждой странице. Еще немного о .append () в официальной документации

...