Добавить и удалить поле ввода

0

Я нахожу здесь две ошибки:

  1. Номер не будет продолжать подсчет, как будет 4 в следующем входном значении. В настоящее время при добавлении нового ввода значение равно 1.
  2. Кнопка удаления не работает, если есть 3 поля ввода. Но кнопка удаления работает, если добавить еще одно поле ввода. Во всяком случае, только один может быть удален.

HTML

<div id="add_form">
<table>
    <tr>
        <td><input type="text" value="1"/></td>
        <td><div class="remove"><a href="#" class="removeclass">Remove</a></div></td>
    </tr>
    <tr>
        <td><input type="text" value="2"/></td>
        <td><div class="remove"><a href="#" class="removeclass">Remove</a></div></td>
    </tr>
    <tr>
        <td><input type="text" value="3"/></td>
        <td><div class="remove"><a href="#" class="removeclass">Remove</a></div></td>
    </tr>
</table>
</div>
<a href="#" id="add_field">Add</a>

JQuery

    $(document).ready(function() {

    var MaxInputs       = 99;
    var InputsWrapper   = $("#add_form table");
    var AddButton       = $("#add_field");

    var x = InputsWrapper.length;
    var FieldCount=1;

    $(AddButton).click(function (e) {

        if(x <= MaxInputs) {

            FieldCount++;

            $(InputsWrapper).append('<tr><td><input type="text" value="' +  x + '"/></td><td><div class="remove"><a href="#" class="removeclass">Remove</a></div></td></tr>');
            x++;

        }

        return false;

    });

    $("body").on("click",".removeclass", function(e) {

        if( x > 1 ) {

            $(this).closest('tr').remove();
            x--;

        }

        return false;

    }) 

});

http://jsfiddle.net/hxbc7/

  • 0
    Похоже, ваша проблема здесь: попробуйте изменить эту строку var InputsWrapper = "$(#add_form table"); к этому var InputsWrapper = "#add_form table";
  • 0
    Я пробовал свой путь, но у числа, увиденного, есть проблема. jsfiddle.net/hxbc7/13 Вы можете проверить эту ссылку. Число увеличивается до 15, когда я добавляю поле ввода
Показать ещё 1 комментарий
Теги:

3 ответа

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

Я обновил скрипту, которую вы создали. http://jsfiddle.net/hxbc7/12/

В вашем коде была ошибка, которую я исправил.

Вместо этой строки

var InputsWrapper   = $("#add_form table");

должен быть

var InputsWrapper   = $("#add_form table tr");
  • 0
    Спасибо за помощь.
0

измените код, подобный этому

    $(document).ready(function() {

    var MaxInputs       = 99;
    var InputsWrapper   = $("#add_form table");
    var AddButton       = $("#add_field");

    var x  = $("input[type=text]").length;
    var FieldCount=1;

    $(AddButton).click(function (e) {

        if(x <= MaxInputs) {

             x++;

            $(InputsWrapper).append('<tr><td><input type="text" value="' +  x + '"/></td><td><div class="remove"><a href="#" class="removeclass">Remove</a></div></td></tr>');


        }

        return false;

    });

    $("body").on("click",".removeclass", function(e) {

        if( x >= 1 ) {

            $(this).closest('tr').remove();
            x--;

        }

        return false;

    }) 

});
0

Попробуйте это: подсчитайте значение FieldCount и добавьте его в текстовое поле.

$(document).ready(function() {

    var MaxInputs       = 99;
    var InputsWrapper   = $("#add_form table");
    var AddButton       = $("#add_field");

    var x = InputsWrapper.length;
    var FieldCount=3;

    $(AddButton).click(function (e) {
        if(x <= MaxInputs) {

            FieldCount++;

            $(InputsWrapper).append('<tr><td><input type="text" value="' +  FieldCount + '"/></td><td><div class="remove"><a href="#" class="removeclass">Remove</a></div></td></tr>');
            x++;

        }

        return false;

    });

    $("body").on("click",".removeclass", function(e) {

        if( x > 1 ) {

            FieldCount--;               
            $(this).closest('tr').remove();
            x--;

        }

        return false;

    }) 

});

Ещё вопросы

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