zoukankan      html  css  js  c++  java
  • ie7-8 js表单提交的问题

    需求是上传一个图片,一开始是这么安排目录结构的

    <form method="post" action="http://gwactv2.***/upload" enctype="multipart/form-data" id="picForm" target="form_iframe">
       <input type="file" id="uppic" class="none" name="uppic">
       <input type="text" id="role" class="none" name="role" value="1">
    </form>
    <a href="javascript:;" class="upload">上传照片</a>

    js部分为:

    $('.upload').click(function(){
            $('#uppic').click();
        })
    
    $("#uppic").change(function(){
            var role = $('.popjoin').attr('data-role');
            $('#role').attr('value',role);
            $('#picForm').submit();
    })

    通过点击“.upload” 这个按钮 ,模拟 #uppic 这个input点击,然后通过change事件提交表单。但是ie8一下报错了。

    排查原因:

    ie下通过脚本触发input[file] 的change事件不起作用,必须用户点击input file。

    解决方案:

    <form method="post"  action="http://gwactv2.woniu.com/tzsy/h151207/upload" enctype="multipart/form-data" id="picForm" target="form_iframe" ispostreq=1>
       <input type="file" id="uppic" class="upload-file" name="uppic">
       <input type="text" id="role" class="none" name="role" value="">
       <input type="hidden" name='ispostreq' value="1">
       <input type="hidden"  name="jsoncallback" value="uploadSuccess">
    </form>
    <a href="javascript:;" class="upload">上传照片</a>

    这样 .upload按钮其实就没用了。 让#uppic 变成透明层在按钮上面,直接点击触发。

  • 相关阅读:
    面向对象设计原则
    简单工厂模式和策略模式结合使用php
    lua string
    js.ajax优缺点,工作流程
    深入理解JavaScript是如何实现继承的
    js中哈希表的几种用法总结
    js,indexOf()、lastIndexOf()
    js获取字符串字节数方法小结
    JS(JavaScript)插入节点的方法appendChild与insertBefore
    js中的this关键字详解
  • 原文地址:https://www.cnblogs.com/smjia/p/5047930.html
Copyright © 2011-2022 走看看