这是我的文件输入元素:<input type="file" id="StudentPhoto" value="StudentPhoto" style="display: none;">
这是验证功能:
$(document).ready(function() {
$('#StudentPhoto').change(function()
{
var file_data = $("#StudentPhoto").prop("files")[0];
var size = file_data.size;
var type = file_data.type;
var name = file_data.name;
var input = $("#StudentPhoto");
if(type !== 'image/png' && type !== 'image/jpg' && type !== 'image/jpeg')
{
alert("Only JPG & PNG files are allowed to upload as student photo.");
$('#StudentPhoto').click();
}
else if(size > 2097152)
{
alert("The maximum photo size is 2MB\n");
$('#StudentPhoto').click();
}
});
});
如果用户选择的文件的格式或大小无效,则应该弹出对话框要求他再次选择文件,但事实并非如此,该函数中的
$('#StudentPhoto').click();
语句不起作用。为什么?还有其他方法吗? 最佳答案
或者,您可以使用.trigger()
方法使click事件在按钮上触发。由于您已经存储了文件字段,因此我们还将使用input
。
input.trigger('click');
希望这可以帮助。