【问题标题】:Unable to remove disabled attribute from a input file submit button无法从输入文件提交按钮中删除禁用属性
【发布时间】:2014-01-13 22:22:34
【问题描述】:

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

谢谢,
-凯尔

这是我的代码:

<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);
        }
    }
};

【问题讨论】:

    标签: javascript jquery file-upload disabled-input


    【解决方案1】:

    试试

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

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      抱歉,我不能随便发表评论,因为它需要至少 50 个声望,wtf!

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

      如果您想坚持使用纯 JS,请使用:

      document.getElementById('uploadSubmit').disabled = false

      改为。

      祝你好运。

      【讨论】:

      • 谢谢杨!我用 document.getElementById("uploadSubmit").disabled = true;和 document.getElementById("uploadSubmit").removeAttribute("disabled");
      【解决方案3】:
       <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>
      

      我试过了,我认为这对你更有帮助

      【讨论】:

        【解决方案4】:

        $("#element").attr("disabled", false) 或 $("#element").removeAttr("disabled")。 我希望第一个示例在新的 jQuery 版本中会更好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多