2

您好我正在使用以下代码将文件输入添加到我的表单中:

var addFile = document.getElementById('addFile');
addFile.onclick = function addFile() {
    if (this.count == undefined) {
        this.count = 0;
    }
    if (this.count++ < 2) {
        $(".files").append('<tr><td><input type="file" name="uploaded_file[]" class="file_input" size="46" style="margin-top:1px;"/><a class="delete" href="javascript:void(0)" style="color:blue; padding-left:15px;">Remove File</a></td></tr>');
    }
    if (this.count == 2) {
        alert('If you wish to upload more than 3 files \nplease compile them into a .zip or .rar file');
    }
};

以下代码用于删除文件输入。

$(function () {
    $(".delete").live("click", function () {
        $(this).parent().remove();
    });
});

我正在寻找一种可能将两者结合起来的方法,当我删除文件时,整体输入计数为 -1,与添加时为 +1 相同。这样,如果用户添加一个插槽然后删除一个然后重新添加一个,则计数是一致的。欢迎任何帮助。

干杯

4

1 回答 1

2

每次都获取计数,而不是存储和持久化计数。

addFile.onclick = function addFile() {
    var count = $(".files tr .file_input").length;
    if ( count < 3 ) {
        // append the row
    }
    else {
        // don't append the row
    }
}

它可能效率稍低,但更易于管理。

于 2012-08-29T20:06:42.100 回答