• 技术文章 >web前端 >js教程

    js动态在form上插入enctype=multipart/form-data的问题_表单特效

    2016-05-16 17:53:06原创806
    我们都知道要让form能提交文件,需要在form上指定enctype=multipart/form-data的attribute,这样才能上传文件,关于enctype的文章很多,就不再做解释。

    问题是因为使用了MVC的Html.BeginForm()来输出表单代码,默认是没有加入enctype的,

    复制代码 代码如下:

    @using (Html.BeginForm()) {
    }

    在PartialView中有一个用来上传文件,又不想为了这个PartialView去修改父页面的Html.BeginForm(),我的做法是在PartialView中用脚本来为form加入enctype:

    复制代码 代码如下:

    $(function(){
    $('#file').parents('form').attr('enctype', 'multipart/form-data');
    });

    最近的主流浏览器都测试通过没问题,唯独IE的几个旧版本出问题,试了手工在Html.BeginForm()中加入enctype是可以解决问题的,说明问题出在以上的脚本。多方查找终于发现出题出现在于IE6,7,8不支持直接attr('enctype', 'multipart/form-data'),而是设置dom属性encoding='multipart/form-data',最终的脚本代码修改为:

    复制代码 代码如下:

    $(function () {
    $('#file').parents('form').attr('enctype', 'multipart/form-data').get(0).encoding = 'multipart/form-data';
    });
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:form multipart form-data
    上一篇:基于jQuery的倒计时实现代码_jquery 下一篇:基于jquery的放大镜效果_jquery
    PHP编程就业班

    相关文章推荐

    • 了解Node.js Nest.js的AOP 架构,聊聊其好处• 一文带你深入了解React Hooks!• JavaScript正则表达式,这一篇就够了• javascript数据类型学习之浅析Symbol类型• 带你了解JavaScript解构赋值

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网