Есть два текстовых поля внутри, имеющих соседний с ними знак «+». При нажатии на знак плюса добавляется новое текстовое поле, и оно будет содержать знак «+», а также знак «-» для добавления и удаления текстового поля соответственно. Я использовал this ресурс для реализации моих текстовых полей. Теперь я хочу добавить только 10 текстовых полей для каждого из них. Значения 10 текстовые поля для ключевого слова [] и 10 текстовых полей для link_name [], как вы можете см. Во имя тега ввода. Но с этим кодом он не работает.Проблемы с динамическим добавлением нескольких текстовых полей
Если я продолжаю добавлять текстовые поля для ключевого слова [], затем добавляют 19 текстовые поля , а затем, если я пытаюсь добавить текстовое поле для link_name [], то он не добавляет одно текстовое окно и отображает достигнут максимальный предел.
Если добавление сделано наоборот, оно работает правильно.
- Еще одна проблема заключается в том, что эффект отскока не работает. Не так много знаком с эффектами, так что не удалось найти причину, почему это не работает.
JQuery и HTML приведены ниже:
JQuery
$(document).ready(function() {
var id_1 = 2, max = 9, append_data;
/*TEXT BOXES FOR LINK NAMES*/
/*If add_1 icon was clicked*/
$("#add_1").live('click', function(){
if($("div[id^='txt_']").length <9){ //Don't add new text box if limit is reached
$(this).remove(); //remove add icon from the current text box
var append_data = '<div id="txt_'+id_1+'" class="txt_div" style="display:none;"><div class="left"><input type="text" id="input_'+id_2+'" name="link_name[]"/></div><div class="right"><img src="add.png" id="add_1"/> <img src="remove.png" id="remove_1"/></div></div>';
$("#textboxes_1").append(append_data); //append new text box in main div
$("#txt_"+id_1).effect("bounce", { times:3 }, 300); //display block appended text box with silde down
id_1++;
}
else{
alert("Maximum 10 textboxes are allowed");
}
})
$("#remove_1").live('click',function(){
var prev_obj = $(this).parents().eq(1).prev().attr('id'); //prev div id of this text_box
$(this).parents().eq(1).slideUp('medium', function() { $(this).remove(); //remove this text box with a slide up
if($("div[id^='txt_']").length >1){
append_data = '<img src = "remove.png" id = "remove_1"/>';
}
else{
append_data = '';
}
if($("#add_1").length< 1){
$("#"+prev_obj+" .right").html('<img src = "add.png" id = "add_1"/>'+append_data);
}
});
})
/*TEXT BOXES FOR KEYWORDS*/
/*If add_2 icon was clicked*/
var id_2 = 12, max = 19;
$("#add_2").live('click', function(){
if($("div[id^='txt_']").length <19){ //Don't add new text box if limit is reached
$(this).remove(); //remove add icon from the current text box
var append_data = '<div id="txt_'+id_2+'" class="txt_div" style="display:none;"><div class="left"><input type="text" id="input_'+id_2+'" name="keyword[]"/></div><div class="right"><img src="add.png" id="add_2"/> <img src="remove.png" id="remove_2"/></div></div>';
$("#textboxes_2").append(append_data); //append new text box in main div
$("#txt_"+id_2).effect("bounce", { times:3 }, 300); //display block appended text box with silde down
id_2++;
}
else{
alert("Maximum 10 textboxes are allowed");
}
})
$("#remove_2").live('click',function(){
var prev_obj = $(this).parents().eq(1).prev().attr('id'); //prev div id of this text_box
$(this).parents().eq(1).slideUp('medium', function() { $(this).remove(); //remove this text box with a slide up
if($("div[id^='txt_']").length >1){
append_data = '<img src = "remove.png" id = "remove_2"/>';
}
else{
append_data = '';
}
if($("#add_2").length< 1){
$("#"+prev_obj+" .right").html('<img src = "add.png" id = "add_2"/>'+append_data);
}
});
})
});
HTML
<div id="textboxes_1" class="inline">
<div id="text_1" class="text_div">
<div class="left">
<input type="text" id="input_1" value="Enter URL(s) here" name="link_name[]" />
</div>
<div class="right">
<img src="add.png" id="add_1" />
</div>
</div>
</div>
<div id="textboxes_2" class="inline">
<div id="text_11" class="text_div">
<div class="left">
<input type="text" id="input_11" value="Enter Keyword(s) here" name="keyword[]" />
</div>
<div class="right">
<img src="add.png" id="add_2" />
</div>
</div>
</div>
<div style="clear:left;"></div>
<input type="submit" id="submit" name="submit" value="SUBMIT">
для эффекта отскока вам понадобится http://gsgd.co.uk/sandbox/jquery/easing/ –
@JonathandeM. Я использовал 'jquery-ui.min.js' для этого. И он обеспечивает эффект отскока. Но в моем коде это не оказывает эффекта. Я связал ресурс в вопросе, и эффект работает в демонстрации, которую они показали. – SilentAssassin
Можете ли вы дать нам http://jsfiddle.net/ ссылку, включая CSS, и изображения для вашего сервера или, по крайней мере: '.right img {background: red; ширина: 30px! important; height: 30px! important;} ' – bumerang