JavaScript中的多个文件输入验证?

时间:2019-02-23 10:18:54

标签: javascript jquery

我创建了一个简单的逻辑,其中更改输入功能开始验证输入文件,但显示 ReferenceError:validateImage未定义

<script>
      $(document).ready(function(){
      	function validateImage(id) {
          var formData = new FormData();
 
          var file = document.getElementById(id).files[0];
 
          formData.append("Filedata", file);
          var t = file.type.split('/').pop().toLowerCase();
          if (t != "jpeg" && t != "jpg" && t != "png" && t != "bmp" && t != "gif") {
            alert('Please select a valid image file');
            document.getElementById(id).value = '';
            return false;
          }
          if (file.size > 1024000) {
            alert('Max Upload size is 1MB only');
            document.getElementById(id).value = '';
            return false;
          }
        return true;
       }
</script> 
<form method="post" enctype="multipart/form-data" id="formUploadFile">		
	<label>Select single file to upload:</label><br/>
	<input type="file" name="files[]" id="img1" onchange="validateImage('img1')" /><br/>
	<input type="file" name="files[]" id="img2" onchange="validateImage('img2')" /><br/>
	<input type="file" name="files[]" id="img3" onchange="validateImage('img3')" /><br/>
	<input type="submit" value="Upload File" name="btnSubmit"/>
</form>

3 个答案:

答案 0 :(得分:0)

添加此行:

window.validateImage = validateImage

在脚本结束标记之前。

答案 1 :(得分:0)

您已经在函数内部声明了validateImage函数,因此它在全局范围内,因此无法从全局范围访问它。您必须在全局范围内声明它。为此,只需在ready函数之外声明validateImage函数。

([+-]*)([0-9]+)([a-z]*)([<=>]*)

答案 2 :(得分:0)

功能封装在$(document).ready(function(){。)中,因此您无法从外部访问它,因此将功能切换出document.ready()即可看到 谢谢  @Madhawa Priyashantha和@Satya

 $(document).ready(function(){

   }

   function validateImage(id) {
            var formData = new FormData();

            var file = document.getElementById(id).files[0];

            formData.append("Filedata", file);
            var t = file.type.split('/').pop().toLowerCase();
            if (t != "jpeg" && t != "jpg" && t != "png" && t != "bmp" && t != "gif") {
                alert('Please select a valid image file');
                document.getElementById(id).value = '';
                return false;
            }
            if (file.size > 1024000) {
                alert('Max Upload size is 1MB only');
                document.getElementById(id).value = '';
                return false;
            }
            return true;
    }