2012-05-31 3 views
0

Я клонирую входной параметр выбора, чтобы пользователь мог добавить дополнительные услуги. У меня есть часть клонирования, работающая нормально, но когда я отправляю форму, я получаю только первый оригинальный выбор.JQuery Increment Select Id

Мне кажется, что мне нужно увеличить значение select id, например. id = "serviceId_2"

Я искал и искал, но я не могу найти, как увеличить ID.

JQuery

$('#clone').click(function() { 
    var original = $('#serviceId:eq(0)'); 
    var allSelects = $('#serviceId'); 
    var clone = original.clone(); 

    $('select', clone).filter(function(i) {    

     allSelects.find('option:selected[value="' + $(this).val() + '"]').length; 
     allSelects.attr('id','asda'); 

    }).remove(); 



    $('#target').append(clone).append('<br />'); 
}); 

Любой имел подобную проблему?

Приветствия

J

ответ

0
var original = $('#serviceId:eq(0)'); 
var allSelects = $('#serviceId'); 
var clone = original 
        .clone() 
        .attr('id', 'serviceId_' + $('select[id^=serviceId]').length + 1); 

Длина Число существующих select с id началось с serviceId, а затем увеличить 1 сделать уникальным.

или если вы хотите просто клонировать один раз его просто

var clone = original.clone().attr('id', 'serviceId_2'); 
+1

Не должно быть 'original.clone(). Attr()', а не 'original.attr(). Clone()'? Кроме того, обратите внимание, что это не будет работать, если элементы 'select' будут удалены. –

+0

Я добавил код, но все равно не радость. Есть предположения? Cheers –

+0

@JohnJones это должно сработать, было бы лучше, если бы сделать fiddel http://jsfiddle.net – thecodeparadox

0

Try, как показано ниже,

var clone = original.clone().attr('id', 'serviceId_2'); 

Ваша функция не очень четкий и поэтому я не собираюсь потушить полный код здесь. Идея состоит в том, чтобы использовать .attr после клонирования для изменения ID клонированного элемента.