jQuery: установить номер клона с помощью опции SELECT - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть SELECT, где я выбираю, сколько у меня детей, а затем получает правильное количество входных данных.Этот фрагмент клонирует и добавляет номер.Поэтому, если вы выберете 4 два раза, количество входных данных будет равно 8. Как я могу сделать это фиксированным количеством клонов, а не добавленных клонов?

Более того, я хотел бы добавить идентификатор (я назвалэто 'userInputID' в скрипте, но он не работает) или Имена для каждого клона.Как мне это сделать?

        //Add the right amount inputs based on SELECT option clicked
        $('select.linkedToNext').change(function() {
           // Get number of children chosen
           var childrenCount = $(this).val(),
               // Get a reference to the first input group so we can clone it
               userInputID = $(".linkedToPrev div").index();
               birthday = $('.linkedToPrev div:first').attr('name', userInputID);

           // Clone per number chosen
           for (var i = 0; i < childrenCount; i++) {
                // Insert clone after original.
                // IRL, you probably need to do some preprocessing on it first.
                birthday.clone().insertAfter(birthday);
                $(this).parent().next(".linkedToPrev").slideDown('slow');
           }
        });

Можете ли вы, ребята, помочь мне здесь?Я думаю, я перебил голову над этим ...: - (

1 Ответ

0 голосов
/ 19 апреля 2011

Во-первых, вы должны изменить var childrenCount = $(this).val() на это:

var childrenCount = $(this).find('option:selected').val()

Более того, я хотел бы добавить идентификатор (я назвал его 'userInputID' в скрипте, но это не такработа) или Имена для каждого клона.

Это можно сделать так:

birthday
    .clone()
    .attr('name', 'somenamehere')
    .attr('id', 'elemIdHere')
    .insertAfter(birthday);
...