2015-04-20 2 views
4

Я ищу для добавления и удаления дубликатов полей ввода с помощью Jquery-Add/Remove Поля ввода динамически с помощью JQuery

Это мой HTML:

<div class="col-sm-9"> 
    <div class="input_wrap"> 
     <div><input type="text" name="text[]" class="form-control"></div> 

     // **** Here I want to add div using Jquery **** // 

     <button class="add_field_button btn btn-info">Add More Subcategory</button> 
    </div> 
</div> 

Это мой Jquery:

var wrapper   = $(".input_wrap"); 
var add_button  = $(".add_field_button"); 

$(add_button).click(function(e){ 
    e.preventDefault(); 
    $(wrapper).prepend('<div><input type="text" name="text[]" class="form-control"><a href="#" class="remove_field">Remove</a></div>'); //add input box 
}); 

Когда я использую этот JQuery, он всегда добавляет div ниже .input_wrap DIV. Но я хочу добавить DIV в место, которое я показал в своем HTML-коде.

UPDATE: Это так, как я хочу, чтобы получить enter image description here Надежда кто-то может помочь мне. Спасибо.

ответ

1
<div class="col-sm-9"> 
    <div class="input_wrap"> 
     <div><input type="text" name="text[]" class="form-control"></div> 

     <div class="more-data"></div> 

     <button class="add_field_button btn btn-info">Add More Subcategory</button> 
    </div> 
</div> 

Ваш JS

var wrapper   = $(".input_wrap"); 
var add_button  = $(".add_field_button"); 
var moredata  = $(".more-data"); 

$(add_button).click(function(e){ 
    e.preventDefault(); 
    moredata.html('<div><input type="text" name="text[]" class="form-control"><a href="#" class="remove_field">Remove</a></div>'); //add input box 
}); 
+0

Могу ли я получить решение без дополнительной разметки? Спасибо. – user3733831

+0

Могу ли я спросить, почему больше некоторых оберток div беспокоит вас? – Kushal

1

Изменить

var wrapper   = $(".input_wrap"); 

в

var wrapper   = $(".input_wrap>div"); 

и изменить prepend к append для добавления в существующий DIV или after, чтобы разместить его после существующего div.

И я надеюсь, что он должен делать то, что вы хотите.

+0

Это будет добавлено внутри доступного элемента div и, следовательно, не будет работать – Kushal

0

вы можете использовать insertAfter это требует selector, после чего вы хотите insert

var newElement='<div><input type="text" name="text[]" class="form-control"><a href="#" class="remove_field">Remove</a></div>'; 
$(newElement).insertAfter(".form-control"); 

но вы должны дать другое имя класса для вновь созданного ввода.
demo

0

Как об этом:

$('<div><input type="text" name="text[]" class="form-control"> 
<a href="#" class="remove_field">Remove</a>  
</div>').insertAfter($(wrapper).find("div")[0]) 
3

Вы можете использовать after ключ

var wrapper = $(".input_wrap>div"); 
var add_button = $(".add_field_button"); 

$(add_button).click(function (e) { 
    e.preventDefault(); 
    $(wrapper).after('<div><input type="text" name="text[]" class="form-control"><a href="#" class="remove_field">Remove</a></div>'); //add input box 
}); 

Fiddle

Редактировать

в

Fiddle

Обновленный скрипку также включать REMOVE функциональность,

создал новую скрипку Demo

Я сделал несколько небольших изменений, наиболее важным из них является

var el = $('.input_wrap div:last'); 

так что в основном получите последний добавленный div, а затем мы добавим новый div right af это его.

$(el).after(newAdd); 
+0

R4nc1d, Еще один вопрос. Когда я использую этот код, он всегда вставляет 'DIV' под' .input_wrap> div'. Но я хочу вставить 'DIV' под 'input_wrap> div' и всегда над кнопкой. Например. 'DIV-1, DIV-2, Div-3..' и т. Д. Но теперь его вставка« DIV-1, DIV-4, DIV-3, DIV-2 ...... »и т. Д. Я упомянул об этом в моем вопросе. – user3733831

+0

Вы должны иметь возможность использовать функцию сортировки для достижения вышеуказанного. Вы можете посмотреть следующие http://jsfiddle.net/hibbard_eu/C2heg/. Дайте мне знать, если вы не придете правильно – R4nc1d

+0

R4nc1d, сортировка не так, как мне нужно. На самом деле я хочу добавить 'INPUT' один за другим, когда нажимает кнопка. – user3733831

1

проверить код ниже JQuery

вар add_button = $ ("add_field_button.");

 $(add_button).click(function(e){ 
      e.preventDefault(); 
      $(".input_wrap div:last").append('<div><input type="text" name="text[]" class="form-control"><a href="#" class="remove_field">Remove</a></div>'); //add input box 
     });