2013-09-05 3 views
1

Я видел похожие вопросы с ответами здесь, но ничто не могло исправить мою проблему. Поэтому я снова спрашиваю его здесь.Добавить ограничение 5 раз только jquery .append

С jquery я хочу, чтобы пользователи добавляли поле ввода пять раз, я использовал .append, который работает нормально, но добавляет неограниченное количество раз.

$("#add-cert").click(function(){ 
     var $addinput = $("<div class='row'><div class='small-6 columns'><label class='right inline'>Enter Your Certificate</label></div><div class='small-6 columns'><input type='text'></div></div>"); 

     $("i").append($addinput); 

     }); 

Пожалуйста, укажите исправление, я новичок в jquery. Я также пробовал следующий код, но с этим кодом .append перестает работать:

$("#add-cert").click(function(){ 
     var $addinput = $("<div class='row'><div class='small-6 columns'><label class='right inline'>Enter Your Certificate</label></div><div class='small-6 columns'><input type='text' name='manual-cert'></div></div>"); 

     var num = $("input[name='manual-cert']").length; 

     if(num > 5){ 
     $("i").append($addinput); 
     } 
     }); 
+0

Не указывайте разные входы с одинаковым именем. – Itay

+2

Ты очень близко. Просто измените 'if (num> 5)' на 'if (num <5)' (если число меньше 5) – pawel

ответ

5

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

var maxAppend = 0; 
$("#add-cert").click(function(){ 
    if (maxAppend >= 5) return; 

    var addinput = $(
     "<div class='row'><div class='small-6 columns'>"+ 
     "<label class='right inline'>Enter Your Certificate</label></div>"+ 
     "<div class='small-6 columns'><input type='text'></div></div>"); 
    maxAppend++; 

    $("i").append(addinput); 
}); 
+0

Невозможно обернуть 'addInput' в' $() '. Строка отлично работает. Отличный ответ, хотя! –

+0

Просто повторный код из OP. –

+0

Понял, я подумал, что он будет их читать! –

0
var count = 0; 

$("#add-cert").click(function(){ 
    if(count < 5) { 
     var $addinput = $("<div class='row'><div class='small-6 columns'><label class='right inline'>Enter Your Certificate</label></div><div class='small-6 columns'><input type='text'></div></div>"); 

     $("i").append($addinput); 

     count++; 
    } 
}); 
1

Ну новая идея управлять этим просто удалить обработчик щелчка после добавления 5 элементов.

var count = 1; 

$("#add-cert").click(function(){ 
    if(count < 5) { 
     var $addinput = $("<div class='row'><div class='small-6 columns'><label class='right inline'>Enter Your Certificate</label></div><div class='small-6 columns'><input type='text'></div></div>"); 

     $("i").append($addinput); 

     count++; 
    } 
    else{ 
    $("#add-cert").off("click"); //remove click listener. 
} 
}); 
+0

копируется из предыдущего ответа. Просто добавила мое другое заявление. – Arpit

Смежные вопросы