无法从输入文件提交按钮中删除已禁用的属性

时间:2014-01-13 22:22:34

标签: javascript jquery file-upload disabled-input

我正在检查文件的文件大小和扩展名,然后(大部分)代码运行正常。但是,如果文件具有正确的扩展名并且小于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);
        }
    }
};

4 个答案:

答案 0 :(得分:1)

尝试

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

希望它有所帮助。

答案 1 :(得分:0)

抱歉,我不能只是评论,因为它需要至少50个声望,wtf!

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

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

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

代替。

祝你好运。

答案 2 :(得分: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>

我试过这个,我觉得这对你更有帮助

答案 3 :(得分:0)

$(“#element”)。attr(“disabled”,false)OR $(“#element”)。removeAttr(“disabled”)。 我希望这个第一个例子在新的jQuery版本中更好。