我有一个ID为#file_add_btn
的按钮。单击此按钮时,文件输入将附加到我的表单:
<input type="file" class="btn_browse" name="file_uploads[]">
我创建了一个数组来存储文件名,以检查先前任何文件输入是否已经选择了所选文件。
当我尝试提醒数组filename_array
的计数时,它在控制台中给我一个错误:
TypeError:filename_array.count不是函数
var filename_array = [];
$(document).on('change', '.btn_browse', function() {
filename_array.push($(this).val().split('\\').pop());
alert(filename_array.count($(this).val().split('\\').pop()));
});
答案 0 :(得分:2)
阵列上没有count()
方法。有一个length
属性,但只提供它所拥有的项目总数。
要执行您需要的操作,您可以使用indexOf()
检查数组是否已包含您要添加的值,如下所示:
var filename_array = [];
$(document).on('change','.btn_browse', function() {
var selectedFilename = $(this).val().split('\\').pop();
if (filename_array.indexOf(selectedFilename) != -1) {
alert('file already selected');
} else {
filename_array.push(selectedFilename);
alert('file added to array');
}
});
或者,您可以使用设置了multiple
属性的单个文件输入,以便可以通过单个控件上载多个唯一文件,如下所示:
<input type="file" class="btn_browse" name="file_uploads[]" multiple="multiple" />