snssv
有狗吼
采纳率100%
2014-12-06 06:14

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('不支持')
                }
            }
        }) ;

谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • showbo GoCityPass新加坡曼谷通票 7年前

    android chrome测试你的这个代码没有问题,应该是你使用的浏览器对this.files支持有问题

    而且你的再IE8-电脑也无法运行,ie file对象没有files属性

    检查文件类型可以用判断下后缀,大小再ie下无解,而且也最好再服务器端再验证过一次。

     if(!/\.(txt|jpg|bmp|png|gif|zip|rar|mp3|mp4)$/i.test(this.value)){//其他的后缀自己添加
    
    }
    
    点赞 评论 复制链接分享
  • szjSmiling szjSmiling 3年前

    我发现在input 标签呢限制文件类型,但是在手机上无效,所有的文件格式都能选择

    点赞 评论 复制链接分享
  • snssv 有狗吼 7年前

    谢谢两位,我后来又做了些测试,发现只是小米自带的浏览有这个问题。

    (真该换手机了)

    再次感谢showbo 同学,我没打算支持IE9以下。

    点赞 评论 复制链接分享
  • u013704361 123mimosa 7年前

    手机内置的web浏览器和电脑有差异的,cookie在电脑上实现的挺好,但在手机上就有问题了,换个方法吧

    点赞 评论 复制链接分享
  • snssv 有狗吼 7年前

    要是从文件管理器里选还 是正确的。但是从相机、相册里打开就不行

    点赞 评论 复制链接分享
  • snssv 有狗吼 7年前
     <div>无奇不有</div>
    
    点赞 评论 复制链接分享

相关推荐