2016-02-23 4 views
0

Ищете способ, чтобы сделать динамический список, используя опцию «другой элемент» с возможностью удаления, если требуется, как на этом изображении:Простой динамический список с флажок

enter image description here

Она должна поддерживать как добавление и удаление предметов.


Edit:

Мой код, как:

<div id="contactdetails"> 
    <div class="row"> 
     <div class="col-lg-6 col-md-12"> 
     <div class="input-group"> 
     <span class="input-group-addon"><i class="fa fa-list"></i></span> 
      <input name="firstname" id="firstname" type="text" class="form-control" spellcheck="false" placeholder="First Name"> 
     </div> 
     <p class="note">Example: Mike</p> 
     </div><!--row and col--> 

     <div class="col-lg-6 col-md-12"> 
      <div class="form-group"> 
       <div class="input-group"><span class="input-group-addon"><i class="fa fa-usd"></i></span> 
       <input name="familyname" id="familyname" type="text" class="form-control" spellcheck="false" placeholder="Family Name"> 
       </div> 
      <p class="note">Example: Johnson</p> 
      </div> 
     </div> 
    </div> <!--row and col--> 

<div class="row"> 
     <div class="col-lg-12 col-md-12"> 
     <div class="checkbox" style="padding-left:10px; margin-top: 0px;"> 
      <span> 
      <label> 
       <input name="addmore" id="addmore" type="checkbox" class="checkbox style-2"> 
       <span> More contacts</span> 
      </label> 
      </span> 
     </div> 
     </div> 
    </div> <!--row and col--> 

</div><!--contact details--> 
+0

Будет щелкать на любой данный флажок удалить какие-либо дополнительные элементы списка? – RobertoNovelo

+0

Посмотрите на функцию клонирования. Вот пример: https://jsfiddle.net/DinoMyte/sgcrupm8/ – DinoMyte

+0

@RobertoNovelo Да, связанные с этим флажком. Если вы создали новый элемент, установив флажок, снятие отметки с тем же флажком приведет к удалению ранее созданного элемента. – user2988257

ответ

1

Вы можете добавлять элементы в контейнер и удалить каждый элемент, если флажок установлен.

$("body").on("click","input[type='checkbox']",function() 
 
{ 
 
    if(!$(this).is(":checked")) 
 
    { 
 
    $(this).parent().remove(); 
 
    } 
 
    else 
 
    { 
 
    $("#container").append('<div class="item"><input type="text" placeholder="Name"><input type="text" placeholder="Family Name"><input type="checkbox"></div>') 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="container"> 
 
<div class="item"><input type="text" placeholder="Name"><input type="text" placeholder="Family Name"><input type="checkbox"></div> 
 
</div>

+0

Да, именно то, что мне нужно. Единственное, как флажок «unselect» может удалить следующие текстовые поля, а не текущие? – user2988257

+1

Используйте $ (this) .parent(). NextAll(). Remove() вместо этого – RobertoNovelo

1

Попробуйте это. Как я уже упоминал ранее, для достижения этой цели вы можете использовать $.clone().

<div> 
<table> 
<tr> 
    <td> 
    Item1 
    </td> 
    <td> 
    Item2 
    </td> 
</tr> 
<tr> 
    <td> 
    <input type="checkbox"> 
    </td> 
</tr>  
</table>  
</div> 
<script> 
    $(document).on("click",":checkbox",function() 
    { 
    if($(this).is(":checked")) 
     { 
     var clonedItem = $(this).closest('table').clone(); 
     $(clonedItem).find(":checkbox").removeAttr("checked"); 
     $(clonedItem).appendTo("div"); 
     } 
     else 
     { 
     if($(document).find(":checkbox").length > 0) 
     $(this).closest('table').remove(); 
     } 
    }); 
</script> 

Пример: https://jsfiddle.net/DinoMyte/sgcrupm8/1/

+0

Этот выглядит так, как я хочу, но я не могу принять его для работы без таблицы. У меня есть только divs - см. Мой код, обновленный в исходном вопросе. – user2988257

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