在选择要上传的文件时验证选择
Validate on select while choosing files for upload
我正在尝试验证文件类型一旦文件被选择用于上传
下面是我的html代码<label> <input type="file" id="image" name="upload[]" multiple="multiple" onclick="validateFileExtension()" />
验证码
function validateFileExtension() {
var ext = $('#my-file-selector').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['gif','png','jpg','jpeg', 'pdf']) == -1) {
alert('invalid extension!');
}
}
但是它不会在选择文件后立即进行验证。只有在提交表单时,才会进行验证。我有另一个jquery提交验证。我需要验证选择。
onclick在选择文件后不触发。使用onchange可以。
function validateFileExtension(element) {
var files = $(element)[0].files;
for(var i = 0; i < files.length; i++) {
var ext = files[i].name.split('.').pop().toLowerCase();
if ($.inArray(ext, ['gif', 'png', 'jpg', 'jpeg', 'pdf']) == -1) {
console.log('invalid extension!', ext);
} else {
console.log('valid extension :)', ext);
}
}
}
function validateForm(form) {
validateFileExtension(form.image);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="file" id="image" name="upload[]" multiple="multiple" onchange="validateFileExtension(this)" />
<br>
<input type="submit" onclick="validateForm(this.parentNode)" />
</form>
如果使用multiple
属性,则需要使用onchange
并循环遍历文件数组
function validateFileExtension(element) {
var i;
for (i = 0; i < element.files.length; i++) {
// make sure in all browsers were just looking at the file name
var ext = element.files[i].name.split('.')[1].toLowerCase();
if ($.inArray(ext, ['gif', 'png', 'jpg', 'jpeg', 'pdf']) == -1) {
element.value = ""; // clear the input field
alert('invalid extension!'); // now alert user
}
}
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>File</label>
<input type="file" id="image" name="upload[]" multiple="multiple" onchange="validateFileExtension(this);" />
相关文章:
- 选择文件后显示图像
- 当选择文件时更改标签内容jQuery
- 触发器<输入类型=“;文件“>用angular程序选择文件
- 打开'选择文件'窗口单击锚链接(跳过单击'选择文件'按钮)
- 隐藏错误消息“;未选择文件”;asp:fileUpload的文本
- 如何从 Chrome 中的文件输入中删除“未选择文件”工具提示
- 选择文件(表单提交)后无法单击“取消”按钮
- 选择文件后的 Javascript 代码
- 通过 NG 单击选择文件或文本区域数据
- 选择文件时的操作
- 选择文件后用程序关闭elfinder
- 文件选择/文件API-将文件发送到嵌入式PDFObject
- 如何在不重新加载页面的情况下选择文件提交表单
- 从包含文件夹的文件夹中随机选择文件,然后选择文件
- 如何使用 Dropbox 插入式应用始终从“我的帐户”中选择文件
- 为什么此表单在选择文件时不自动提交
- 单击输入框以显示“打开文件”对话框,但不单击“选择文件”按钮
- 如何使用javascript获取图像宽度,高度和文件类型 在IE7,8上,选择文件后
- 浏览器通过浏览器扩展程序通过文件输入标签自动选择文件
- 重新选择文件