这是我的文件输入元素:
<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');

希望这可以帮助。

09-25 15:41