js动态在form上插入enctype=multipart/form-data的问题


Posted in Javascript onMay 24, 2012

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

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

@using (Html.BeginForm()) { 
}

在PartialView中有一个<input type="file" />用来上传文件,又不想为了这个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'; 
});
Javascript 相关文章推荐
JS刷新当前页面的几种方法总结
Dec 24 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
Aug 28 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
May 23 Javascript
vue.js如何将echarts封装为组件一键使用详解
Oct 10 Javascript
js读取本地文件的实例
Dec 22 Javascript
Node.js 使用AngularJS的方法示例
May 11 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 13 Javascript
微信小程序自定义单项选择器样式
Jul 25 Javascript
Vue中图片Src使用变量的方法
Oct 30 Javascript
VuePress 中如何增加用户登录功能
Nov 29 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
Apr 17 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 #Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
May 24 #Javascript
JavaScript之编码规范 推荐
May 23 #Javascript
javascript的数据类型、字面量、变量介绍
May 23 #Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
May 23 #Javascript
通过js动态操作table(新增,删除相关列信息)
May 23 #Javascript
JavaScript基础语法让人疑惑的地方小结
May 23 #Javascript
You might like
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
Display SQL Server Login Mode
2007/06/21 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
使用console进行性能测试
2015/04/27 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
javascript 闭包详解
2015/07/02 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
python实现的防DDoS脚本
2011/02/08 Python
JSON Web Tokens的实现原理
2017/04/02 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
python调用接口的4种方式代码实例
2019/11/19 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
大学学雷锋活动总结
2014/06/26 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
2016秋季运动会前导词
2015/11/25 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫