当文件大小超过2 MB
时,我尝试阻止在提交之前上传文件一个输入一切正常,但多个输入出错了
任何人都可以帮助我吗?
这是我的小提琴
$('#zzz').submit(function() {
var valid_form = true;
var thumb1_size = $('#1')[0].files[0].size;
if (thumb1_size > 2097152) {
$('.error').html(thumb1_size);
valid_form = false;
alert(valid_form)
}
})
如果我改变
$('#zzz').submit(function() {
var valid_form = true;
var thumb1_size = $('#1')[0].files[0].size;
var thumb2_size = $('#2')[0].files[0].size;
if (thumb1_size > 2097152 || thumb2_size > 2097152 ) {
$('.error').html(thumb1_size);
valid_form = false;
alert(valid_form)
}
})
表单提交甚至valid_form返回false
答案 0 :(得分:0)
怎么了?您需要计算和处理每个输入字段的大小。另外,你还是发送表格。您必须prevenDefault
function阻止它。
使用此:
$('#zzz').submit(function (event) {
event.preventDefault();
$("input").each(function() {
if($(this).val() != '') {
var name = this.files[0].name;
var size = this.files[0].size;
if(size > 2097152) {
alert('error');
$('.error').append("<p>Size of file \""+name+"\" is wrong: "+size+"</p>");
}
}
});
});
答案 1 :(得分:0)
这将在某些文件未上传时显示错误,并且还会检查大小。
$('#zzz').submit(function (event) {
$('.error').html('');
var valid_form = true;
var files = $('input[type=file]');
for ( i = 0; i < files.length; i++) {
if(files[i].files[0] != null){
var fileSize = files[i].files[0].size;
if (fileSize > 2097152) {
valid_form = false;
$('.error').append("<p>File #" + (i + 1).toString() + " is too large</p>");
}
}else{
valid_form = false;
$('.error').append("<p>File #" + (i + 1).toString() + " is not there!</p>");
}
}
if(!valid_form)event.preventDefault(); // prevent submit
});