2013-03-09 5 views
0

Я пытаюсь ограничить количество клонов по следующей ссылке:Как ограничить количество клонов JQuery?

JSFiddle Link

Это Jquery codeing:

$("#addbt").click(function() { 
$('#choice').clone() 
    .attr('id', 'choice' + $('.ddl').length) 
    .attr('name', 'choice' + $('.ddl').length) 
    .insertAfter(".ddl:last"); 
$('#num').clone() 
    .attr('id', 'num' + $('.dd2').length) 
    .attr('name', 'num' + $('.dd2').length) 
    .insertAfter(".dd2:last");}); 

$("#removebt").click(function() { 
    $("#choice1").remove(); 
    $("#num1").remove(); 
}); 

Я положил его на JSFiddle, чтобы каждый мог видеть ее текущий функционал кодирование.

+2

Проверьте '$ ('DDL'). Length' каждый раз, и предотвратить' клон() ', если результат больше, чем число вы хотите ограничить его? – Matt

ответ

1
$("#addbt").click(function() { 

    // check count 
    var clonedCount = $('[id^=choice]').length; // OR $('.ddl').length @Matt mentioned 

    if(clonedCount > 3) return false; // stop clonning 

    $('#choice').clone() 
     .attr('id', 'choice' + $('.ddl').length) 
     .attr('name', 'choice' + $('.ddl').length) 
     .insertAfter(".ddl:last"); 
    $('#num').clone() 
     .attr('id', 'num' + $('.dd2').length) 
     .attr('name', 'num' + $('.dd2').length) 
     .insertAfter(".dd2:last"); 
}); 

JSFiddle Link