之后直接在代码中仍然可以使用Jquery Removed字段

时间:2013-02-06 18:40:30

标签: jquery dom

我有几个输入框在第一页加载时不存在。它们是由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;
    });
}

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

1 个答案:

答案 0 :(得分:1)

您应该使用.on而不是点击下面的代码片段,例如

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