无法从输入文件提交按钮中删除禁用的属性
问题描述:
我正在上传文件之前检查文件的大小和扩展名,并且(大部分)代码运行正常。但是,如果文件具有正确的扩展名并且小于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);
}
}
};
答
对不起,我不能只是评论,因为它需要至少50声望,跆拳道!
检查您是否有jQuery,我注意到您在开始时使用了getElementById,并且不知何故,您使用的是jQuery选择器for upododSubmit。除此之外,语法对我来说是正确的。
如果你想坚持用纯JS,用途:
的document.getElementById( 'uploadSubmit')禁用=假
代替。
祝你好运。
答
尝试
$("#uploadSubmit").removeAttr("disabled");
希望它能帮助。
答
<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>
我尝试这样做,我认为这更有助于您
答
$( “#元素”)。ATTR( “已禁用”,假)或$( “#元素”)。removeAttr( “禁用”)。 我希望这个第一个例子更好用新的jQuery版本。
谢谢杨!我用document.getElementById(“uploadSubmit”)。disabled = true;和document.getElementById(“uploadSubmit”)。removeAttribute(“disabled”); – Kyle