沙漠中的鱼

欲上天堂,先下地狱
posts - 0, comments - 56, trackbacks - 0, articles - 119
  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理

最近研究createElement的时候发现一个奇怪的问题

var echkbox=document.createElement("input");
echkbox.setAttribute("type","checkbox");
echkbox.setAttribute("id","inputid");
echkbox.setAttribute("name","inputname");
echkbox.setAttribute("value","inputvalue");
echkbox.setAttribute("checked","checked");
var addhere=document.getElementById("someElementId");
addhere.appendChild(echkbox);
alert(document.getElementById("inputid").checked);

ie7显示出来的checkbox居然是未选中的但是alert出来的却是true,而FF一切正常
后来查了半天资料说是ie显示的时候只对状态改变比较敏感
改成
var echkbox=document.createElement("input");
echkbox.setAttribute("type","checkbox");
echkbox.setAttribute("id","inputid");
echkbox.setAttribute("name","inputname");
echkbox.setAttribute("value","inputvalue");
var addhere=document.getElementById("someElementId");
addhere.appendChild(echkbox);
echkbox.setAttribute("checked","checked");
alert(document.getElementById("inputid").checked);

一切ok
radio同样是这种情况。

转自 someone's something空间

评论

# re: document.createElement("input")动态创建html元素时checkbox和radio默认选中的问题  回复  更多评论   

2008-07-17 11:00 by beck
我怎么没出现你说的情况,我是在ie6.0下试的。我的邮箱raojs@163.com

# re: document.createElement("input")动态创建html元素时checkbox和radio默认选中的问题  回复  更多评论   

2008-07-22 13:27 by Noriko
不管用呢

# re: document.createElement("input")动态创建html元素时checkbox和radio默认选中的问题  回复  更多评论   

2008-07-22 16:25 by Noriko
请问如果我的Radio按钮是这样的,按钮OK 按钮 NG,这样是写在一个table的一个td里面的,我用Insertrow来动态新增table的话,要怎么写呀?我试着你的这样写法,可是却只有按钮不知道OK NG写在什么地方,而且如果加了2个按钮的话就不能进行选择了,预设选好的就是选好的了,帮帮忙吧谢谢了,我的mail:zhangli-li@163.com,希望可以得到你的帮忙!谢谢!

# re: document.createElement("input")动态创建html元素时checkbox和radio默认选中的问题  回复  更多评论   

2008-07-27 18:12 by 沙漠中的鱼
@beck
是有的,可能你的HTML写错了,在触发document.getElementById("someElementId");这个方法之前,还没有创建ID为someElementId的对象,我把我写的HTML文件发到你的邮箱里面了,你查看一下

# re: document.createElement("input")动态创建html元素时checkbox和radio默认选中的问题  回复  更多评论   

2008-07-27 19:18 by 沙漠中的鱼
@Noriko
你出现的情况是在IE下动态创建的radio的name属性没有起作,所以你选不中任何一个radio,在这种情况下你就需要识别是哪种浏览器,针对不同的浏览器用不同的方法,如何识别不同的浏览器可以查看我的另一篇文章,上面写的很清楚,
针对你的这种情况在IE应当这样动态创建一个radio
var okRadio=document.createElement("<input type='radio' name='radioButton' value='nchecked2' >");
var objTd=document.createElement("td");
objTd.appendChild(okRadio);
这样就不会出现你所说的选中的状态了

# re: document.createElement("input")动态创建html元素时checkbox和radio默认选中的问题  回复  更多评论   

2009-12-17 17:17 by yanlingevol
你对name属性赋下值就可以了

只有注册用户登录后才能发表评论。


网站导航: