如何在客户端验证文件输入(Javascript)

use*_*106 6 javascript validation jquery

我有一个存储在javascript变量中的表单:

var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startImageUpload(this);' class='imageuploadform' >" + 
"<label> Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/>" +
"<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label></form>
Run Code Online (Sandbox Code Playgroud)

现在您可以看到用户点击提交按钮的时间,它会提交到'startImageUpload'功能,如下所示:

function startImageUpload(imageuploadform){
  $(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
  $(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
  sourceImageForm = imageuploadform;
      return true;
}
Run Code Online (Sandbox Code Playgroud)

它的作用是当用户点击提交时,它会显示一个加载栏并上传表单.

现在我的问题是我想要执行一个简单的javascript验证,当用户点击表单中的提交按钮时,它将检查文件是'png'还是'gif'文件类型.如果文件类型正确,则显示加载栏并上传表单.如果文件类型不正确,则显示警告,说明文件类型不正确,但不显示加载栏,也不上传表单.

有谁知道如何编码.这样我就可以使用你的一个答案中的例子,然后对其进行扩展,并使用javascript来验证更多的文件类型和文件大小,这样如果有人可以帮助我,将会非常有帮助.

谢谢

cod*_*der 1

尝试这个:

 $("#pic").change(function() {

    var val = $(this).val();

    switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
        case 'gif': case 'jpg': case 'png':
            alert("an image");
            break;
        default:
            $(this).val('');
            // error message here
            alert("not an image");
            break;
    }
});
Run Code Online (Sandbox Code Playgroud)