如果所选文件不是特定类型,则使用 JavaScript 或 JQuery 清除文件上传字段
Using JavaScript or JQuery to clear a file upload field if the file selected is not a certain type
我基本上重新设计了一个文件上传表单域。
<input id="uploadFile" placeholder="Choose File" disabled="disabled" />
<div class="fileUpload btn btn-primary">
<span>Upload</span>
<input id="uploadBtn" type="file" class="upload" />
</div>
.fileUpload {
position: relative;
overflow: hidden;
margin: 10px;
}
.fileUpload input.upload {
position: absolute;
top: 0;
right: 0;
margin: 0;
padding: 0;
font-size: 20px;
cursor: pointer;
opacity: 0;
filter: alpha(opacity=0);
}
我无法使用 vanilla CSS 显示所选文件的名称,所以这个项目变得有点复杂。
document.getElementById("uploadBtn").onchange = function () {
document.getElementById("uploadFile").value = this.value;
};
这是 JSFiddle。
http://jsfiddle.net/ccsGK/1532/
到目前为止进展顺利,但我需要对选择上传的文件进行客户端验证。
例如:我只想允许 .pdf 或 .docx 扩展名。如果所选文件与该扩展名不匹配,是否有办法清除文件上传字段?也许添加一个提醒,让此人知道他们的文件已被清除或格式不正确?
您可以简单地使用正则表达式来检查它是否具有该扩展名。如果是,请执行任何操作(将值添加到禁用字段)。如果否,请执行任何操作(取消上传,显示警报)。
document.getElementById("uploadBtn").onchange = function () {
if (this.value.match(/\.(pdf|docx)$/)) {
document.getElementById("uploadFile").value = this.value;
} else {
this.value = "";
alert("Must be a PDF or DOCX.");
}
};
我基本上重新设计了一个文件上传表单域。
<input id="uploadFile" placeholder="Choose File" disabled="disabled" />
<div class="fileUpload btn btn-primary">
<span>Upload</span>
<input id="uploadBtn" type="file" class="upload" />
</div>
.fileUpload {
position: relative;
overflow: hidden;
margin: 10px;
}
.fileUpload input.upload {
position: absolute;
top: 0;
right: 0;
margin: 0;
padding: 0;
font-size: 20px;
cursor: pointer;
opacity: 0;
filter: alpha(opacity=0);
}
我无法使用 vanilla CSS 显示所选文件的名称,所以这个项目变得有点复杂。
document.getElementById("uploadBtn").onchange = function () {
document.getElementById("uploadFile").value = this.value;
};
这是 JSFiddle。
http://jsfiddle.net/ccsGK/1532/
到目前为止进展顺利,但我需要对选择上传的文件进行客户端验证。
例如:我只想允许 .pdf 或 .docx 扩展名。如果所选文件与该扩展名不匹配,是否有办法清除文件上传字段?也许添加一个提醒,让此人知道他们的文件已被清除或格式不正确?
您可以简单地使用正则表达式来检查它是否具有该扩展名。如果是,请执行任何操作(将值添加到禁用字段)。如果否,请执行任何操作(取消上传,显示警报)。
document.getElementById("uploadBtn").onchange = function () {
if (this.value.match(/\.(pdf|docx)$/)) {
document.getElementById("uploadFile").value = this.value;
} else {
this.value = "";
alert("Must be a PDF or DOCX.");
}
};