2014-01-13 41 views
-1

我正在上传文件之前检查文件的大小和扩展名,并且(大部分)代码运行正常。但是,如果文件具有正确的扩展名并且小于2MB,我无法从提交按钮中删除禁用的属性。我觉得好像有些小事我没有看到或忘记。我将不胜感激任何帮助或提示。无法从输入文件提交按钮中删除禁用的属性

感谢,
-Kyle

这里是我的代码:

<p>Select a logo to upload</p> 
<input type="file" id="uploadFile" class="upload" name="upfile"><br> 
<input type="submit" id="uploadSubmit" value="Upload Image" disabled="disabled"> 



document.getElementById("uploadFile").addEventListener("change", checkFile, true); 
function checkFile(e) { 
    var files = e.target.files; 
    for (var i = 0, file; file = files[i]; i++) { 
     var fileName = file.name; 
     var fileExt = fileName.split(".")[fileName.split(".").length - 1].toLowerCase(); 
     var fileSize = document.getElementById("uploadFile").files[0].size; 
     var fileSizeMB = (file.size/2097152).toFixed(2); 
     if (!(fileExt === "jpg" || fileExt === "eps" || fileExt === "tif" || fileExt === "tiff") || fileSize > 2097152) { 
      alert("There is an error with the file you selected. Please check the file size and/or the file type."); 
     } else { 
     $("#uploadSubmit").prop("disabled", false); 
     } 
    } 
}; 

回答

0

对不起,我不能只是评论,因为它需要至少50声望,跆拳道!

检查您是否有jQuery,我注意到您在开始时使用了getElementById,并且不知何故,您使用的是jQuery选择器for upododSubmit。除此之外,语法对我来说是正确的。

如果你想坚持用纯JS,用途:

的document.getElementById( 'uploadSubmit')禁用=假

代替。

祝你好运。

+1

谢谢杨!我用document.getElementById(“uploadSubmit”)。disabled = true;和document.getElementById(“uploadSubmit”)。removeAttribute(“disabled”); – Kyle

1

尝试

$("#uploadSubmit").removeAttr("disabled"); 

希望它能帮助。

0
<head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script type="text/javascript" src="script/jquery-1.9.1.min.js"></script> 
    </head> 
<script> 
    $(function() { 
     $('#uploadFile').bind('change', function() { 
      var filename = this.files[0].name.toLowerCase(); 
     if ((filename.indexOf(".jpg") > -1) 
       || (filename.indexOf(".png") > -1)) {     
      if(this.files[0].size<2000000){ 
       $("#uploadSubmit").removeAttr("disabled"); 
       alert("This is your solution"); 
      }else{ 
       alert("You cant get bigger than 2 MB"); 
      } 
     } else { 
      alert("File format must jpg or png");     
      return false; 
     } 
     }); 
    }); 

</script> 
<body> 
     <p>Select a logo to upload</p> 
     <input type="file" id="uploadFile" class="upload" name="upfile"><br> 
     <input type="submit" id="uploadSubmit" disabled="disable" value="Upload Image"> 

    </body> 

我尝试这样做,我认为这更有助于您

0

$( “#元素”)。ATTR( “已禁用”,假)或$( “#元素”)。removeAttr( “禁用”)。 我希望这个第一个例子更好用新的jQuery版本。

相关问题