0

我有几个在首页加载时不存在的输入框。它们是由 JQuery 通过 .clone() 创建的。

<input type="text" class="myInputs" name="input[0]" />
<input type="text" class="myInputs" name="input[1]" />
<input id="remove" type="button" value="Remove last input">

然后我有一个函数来总结所有这些字段并使用结果发出警报,该函数由
a) 输入字段的 onchange 函数调用(就像一个魅力)和
b)“删除一个输入字段" - 应该删除一个字段然后再次调用该函数的按钮。

$(document).ready( function() {
    function calculatesum() {
        var sum = 0;
        var value = 0;
        var error = false;
        var count = new Number($("input.myInputs").length);

        if(count >= 1) {
            $("input.myInputs").each(function() {
                if($.isNumeric($(this).val())) {
                    value = new Number($(this).val());
                    sum = sum + value;
                }
                else
                    error = true;
            });
        }
        if(!error)  alert(sum);
        else        alert("Error");
    }

    $('body').on('change', 'input.myInputs', function () {  
        calculatesum();
    });

    $('#remove').click(function () {
        if (confirm("Are you sure?")) {                 
            $('.myInputs:last').slideUp('slow', function () {
                $(this).remove();
            });
            calculatesum();
        }
        return false;
    });
}

现在的重点是,在通过按钮功能删除元素后,它仍然获得(先前删除的)输入字段及其值。
我怎样才能防止这种情况?

4

1 回答 1

1

您应该使用.on而不是单击下面的代码片段,就像这样

$('#remove').on('click', function () {
        if (confirm("Are you sure?")) {                 
            $('.myInputs:last').slideUp('slow').remove();
            calculatesum();
        }
于 2013-02-06T18:43:41.907 回答