jQuery 示例:在文件扩展名不允许的情况下重置输入文件元素
jQuery Example: Reseting an input file element in case of non-allowed file-extensions
如果有人试图上传一个文件扩展名不允许的文件,这个输入文件元素应该被"重置"。
那就是输入文件元素
<input type="file" id="image1">
这些是相应的jQuery语句(文档已准备就绪),我得到"TypeError:myElement.clone不是一个函数"(当我在这里尝试这个解决方案时:使用jQuery清除)
$(document).ready(function() {
$('#image1').change(function(event) {
checkExtensions(this.files[0].name, $(this).get());
});
function checkExtensions (fileName, element) {
var myElement = element;
var allowedExtensions = new Array ('pdf','gif','jpg','png');
var currentExtension = fileName.split('.').pop();
if ($.inArray (currentExtension, allowedExtensions) > -1) {
// everythins is OK, further instructions take place
} else {
// reset the file input element
myElement.replaceWith( myElement = myElement.clone( true ) );
}
}
});
你正在将本机 DOM 元素传递给你的函数,而不是包含该元素的 jQuery 对象。本机 DOM 元素没有函数clone()
(或replaceWith
)。试试这个:
$('#image1').change(function(event) {
checkExtensions(this.files[0].name, $(this)); // note, I removed .get()
});
function checkExtensions (fileName, $element) {
var allowedExtensions = new Array ('pdf','gif','jpg','png');
var currentExtension = fileName.split('.').pop();
if ($.inArray (currentExtension, allowedExtensions) > -1) {
// everything is OK, further instructions take place
} else {
// reset the file input element
$element.replaceWith($element.clone(true).val(''));
}
}
示例小提琴
相关文章:
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- 在给定 javascript 中的表头的情况下生成 TSV 文件
- 如何在不使用require语句的情况下使用webpack加载目录中的所有文件
- 获取 HTML 5 音频控制文件位置并在不使用 id 选择器的情况下更新 src
- 如何在不使用Internet Explorer的情况下从未挂起的HTML文件执行程序
- AngularJS可以在没有任何服务器端技术的情况下将文件保存/写入服务器
- 如何使用javascript在不更改页面的情况下访问文件上传所选文件
- 如何在不使用处理程序的情况下使用ajax将文件从客户端发送到服务器端
- 如何在不必维护每个文件的两个版本的情况下,将通用JavaScript和映像部署到两个不同的EAR
- 如何在不干扰电子邮件通知的情况下将眼镜保存在文本文件中
- 在不干扰HTML代码的情况下,将javascript文件导入javascript文件
- 如何在没有JQuery的情况下在Javascript中获取文件的内容
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 如何使用 dojo 在不冻结浏览器的情况下下载文件
- 如何在没有冲突的情况下将 JQuery 包含在 JavaScript 文件中
- 是否可以在不将其添加到DOM的情况下预加载和缓存视频文件
- 如何在不打开文件的情况下下载文件
- 在不安装Zend优化器的情况下运行php文件
- PhantomJS-在不提交表单的情况下上传文件