JQuery - Почему я не могу удалить определенную клонированную форму?

0

Я хочу удалить определенную клонированную форму.

У меня есть одна таблица и кнопка, и когда вы нажимаете на кнопку, она клонирует таблицу, теперь я хочу удалить конкретную таблицу, клонированную ранее.

Я пытаюсь это сделать, но он не работает, что я делаю неправильно?

Благодарю.

Вот мой код:

 <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
 <html>
 <head>

<script type='text/javascript'>
   $(window).load(function(){

   $('.remove').click( function() {
     $(this).parents(".addforms:last").remove();
 event.preventDefault();
    });


  $('.clone').on('click', function(e){
  $(".addforms:last").clone().find("input[type='text']").val('').end().insertBefore($(".addforms:first"));
  event.preventDefault();
  }); 

});

</script>

</head>
 </body>
 <form class='cform' method="POST">
<table border='0' style='background: #1D7373; border-bottom: 1px solid #2e9c9c; color:white; width:100%;'>
    <tr class="addforms">
   <td><input class='txtedit' placeholder='Name' type='text'  name='Name' maxlength='130' /></td>

<td><a class="remove">[X]</a></td>
</tr>
         <input style='width: 60px;' type='submit' class='clone' value='+' />
    </table>
    </form>
    </body>
    </html>
  • 0
    Вам нужно делегировать событие click, обработчик щелчка здесь не запускается для элементов, добавляемых динамически
Теги:

2 ответа

1
Лучший ответ

Вы должны использовать делегирование делегирования для обработки элементов, добавленных после загрузки окна:

$("table").on("click", ".remove", function (e) {
    e.preventDefault();
    $(this).parents(".addforms:last").remove();
});
  • 0
    огромное спасибо
0

Вместо:

<input style='width: 60px;' type='submit' class='clone' value='+' />

Используйте это: Изменение времени ввода на кнопку

<input style='width: 60px;' type='button' class='clone' value='+' />

Полный код:

$(function () {

    $('.remove').click(function (event) {
        event.preventDefault();
        $(this).parents(".addforms:last").remove();

    });


    $('.clone').click(function () {
        $(".addforms:last").clone().find("input[type='text']").val('').end().insertBefore($(".addforms:first"));
    });

});

Live Demo

  • 0
    все еще не работает
  • 0
    Обновил мой ответ, посмотрите

Ещё вопросы

Сообщество Overcoder
Наверх
Меню