欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

大牛在哪里?关于动态生成<input type="file">的有关问题

更新时间: 2014-01-05 01:51:05 责任编辑: Author_N1

 

大牛在哪里???关于动态生成<input type="file">的问题。
本人动态生成语句如下;
var input_file=document.createElement('input');

input_file.setAttribute('type','file');

input_file.setAttribute('name','pictures[]');

if(window.addEventListener)
{
input_file.addEventListener('change',PreviewImage);
}
else
{
input_file.attachEvent('onchange',PreviewImage)
}
function PreviewImage()
{
         this.value;//函数里面调用这句,在chrome,FF中有效,在IE中却无效,该怎么解决这个兼容问题
}

还有额外问问:addEventListener('change',函数名) 如果该函数带参数,又该怎么办呢?
--参考方法--
应该是低版本的IE无效吧?

低版本的IE,这个时候,this是等于window的,IE9+的应该是可以的。

function PreviewImage(e){
e = e 
--参考方法--
 window.event;//获取事件
var target = e.srcElement 
--参考方法--
 e.target;//获取目标元素
var tagName = target.tagName.toLowerCase();//获取目标元素的标签名,并变成小写
if(tagName == "input"){
//判断是否为input标签。如果是则执行
alert(target.value);//获取input的value值。
}
}


试试这样写呗,我这里带的e作为参数,在绑定事件时,是可以不写的。至于其他的参数,你就再套一层函数吧,类似这样

function PreviewImage(e){
function  aa(x,y){
e = e 
--参考方法--
 window.event;//获取事件
var target = e.srcElement 
--参考方法--
 e.target;//获取目标元素
var tagName = target.tagName.toLowerCase();//获取目标元素的标签名,并变成小写
if(tagName == "input"){
//判断是否为input标签。如果是则执行
alert(target.value);//获取input的value值。
}
}
aa(x,y);
}


试试。。
--参考方法--
attachEvent方法添加的事件,this为window对象,不是对应的控件

input_file.setAttribute('type','file');

input_file.setAttribute('name','pictures[]');

if(window.addEventListener)
{
input_file.addEventListener('change',function(){PreviewImage(input_file,....其他参数)},false);
}
else
{
input_file.attachEvent('onchange',function(){PreviewImage(input_file,....其他参数)})
}

function PreviewImage(f,....其他参数)
{
         f.value;//函数里面调用这句,在chrome,FF中有效,在IE中却无效,该怎么解决这个兼容问题
}
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:51:05
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2020/
本文WWW.DOC100.NET DOC100.NET版权所有。