问题描述
- input file 文件类型(手机无效)
-
请问一下 下面这段JS为什么在电脑能正确运行,手机上却无效?$(".add_file input").change(function(){ var _t =this.files[0]; if(_t.size > 512000000){ alert("文件太大了"); } else{ if(_t.type.indexOf('image') >= 0){ $(this).parent('li').addClass('change'); }else if(_t.type.indexOf('text')>=0) { $(this).siblings('.preview').html('<i class="icon-file-pdf"></i><p>'+_t.name+'</p>'); $(this).parent('li').addClass('change'); }else if(_t.type.indexOf('audio')>=0) { alert("是音频"); }else if(_t.type.indexOf('video')>=0) { alert("是视频"); }else if(_t.type.indexOf('zip')>=0) { alert("是压缩包"); }else{ alert('不支持') } } }) ;
谢谢。
解决方案
android chrome测试你的这个代码没有问题,应该是你使用的浏览器对this.files支持有问题
而且你的再IE8-电脑也无法运行,ie file对象没有files属性
检查文件类型可以用判断下后缀,大小再ie下无解,而且也最好再服务器端再验证过一次。
if(!/.(txt|jpg|bmp|png|gif|zip|rar|mp3|mp4)$/i.test(this.value)){//其他的后缀自己添加
}
解决方案二:
要是从文件管理器里选还 是正确的。但是从相机、相册里打开就不行
解决方案三:
手机内置的web浏览器和电脑有差异的,cookie在电脑上实现的挺好,但在手机上就有问题了,换个方法吧
解决方案四:
谢谢两位,我后来又做了些测试,发现只是小米自带的浏览有这个问题。
(真该换手机了)
再次感谢showbo 同学,我没打算支持IE9以下。
解决方案五:
<div>无奇不有</div>
时间: 2024-10-27 20:07:06