Как я могу убедиться, что последняя форма не удалена? - PullRequest
2 голосов
/ 19 января 2012

У меня есть простая настройка, при которой у ряда форм есть кнопки «+» и «-», которые позволяют вам добавлять и удалять (то есть копировать или удалять) форму. Как я могу гарантировать, что последняя форма никогда не удаляется?

- + 
<form>
stuff
</form>

Так, например, если кто-то нажимает кнопку «+» 3 раза, эффективно будет 4 формы. Как я могу помешать им удалить первый, то есть так, чтобы всегда оставался один?

Вот jQuery для функции «минус»:

$(function() {
$('.removeCreative').click(function() {
    $('#creative').find('form:last').remove();
});
});

Это так же просто, как что-то вроде:

if ( $("#creative").length > 0 ) {
//do something
}

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 19 января 2012

Вы почти там ...

$(function() {

    $('.removeCreative').click(function() {
        if($("#creative").children("form").length > 1){
            $('#creative').find('form:last').remove();
        }
    });

});

Вы можете использовать метод children() в JQuery, чтобы получить все дочерние элементы в данном элементе, к которым вы затем можете сосчитать с помощью length иразрешить удаление, только если их несколько.если вы передадите селектор «форма» в качестве первого параметра children(), вы получите правильное значение длины, если ваш #creative div имеет элементы разных типов, чем просто form

1 голос
/ 19 января 2012

У тебя почти было это. $("#creative").length возвращает количество элементов, найденных селектором #creative, которое всегда равно 1. Вы хотите найти количество форм, содержащихся под элементом #creative:

if ( $("#creative").find("form").length > 1 ) {
  // Remove the last form...
}
1 голос
/ 19 января 2012

Попробуйте это

$(function() {
   $('.removeCreative').click(function() {
     var $forms = $('#creative').find('form');
     if($forms.length > 1){
         $forms.last().remove();
     }
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...