.net 动态设置form的enctype属性

此属性具有下面三个值可取:
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到 text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

application/x-www-form-urlencoded是默认值;multipart/form-data上传附件需要用到,此时以二进制传输数据,服务器端是可以获得input的值的,只是它的值是二进制数据。

用js可以改变此属性:

if(theForm .getAttribute('enctype')!='multipart/form-data'){
theForm .setAttribute('enctype','multipart/form-data');
}
上面是标准办法但IE不兼容。下面的办法兼容IE:

var theForm = document.forms['aspnetForm'];
            if (!theForm) {
                theForm = document.aspnetForm;
            }
            $(theForm).submit(function() {
                if (theForm.encoding) {
                    theForm.setAttribute('encoding', 'multipart/form-data');
                } else {
                    theForm.setAttribute('enctype', 'multipart/form-data');
                }
                theForm.submit();
            });
posted @ 2010-06-01 11:01  '.Elvis.'  阅读(382)  评论(0编辑  收藏  举报