ie的getElementByNames的问题 你弄错了 是document.getElementsByName()方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,不好意思,是写帖子的笔误,我的js里没写错,如果有错的话,ff也会报错了。 霎标签的name,在form里吗,是提交控件吗? 是的,动态添加删除的是input type="hidden" id="pkey"+i name="pkey[]" value="xx",是添加在form里面的,为要提交的变量。 添加删除input type="hidden"的代码是没有问题的,已经验证过了。 如此啊ie下用document.createElement("input")创建并设置name属性的input控件用document.getElementsByName()的方法是获取不到的这是IE的问题不过你可以用document.getElementsByTagName("input")的方法来来查找出你要的控件的 我是通过document.createElement("input")创建并设置name属性的input控件,ie不能用document.getElementsByName()的方法来获取,而ff和opera都可以。看来我只能用document.getElementsByTagName来查找后遍历判断了。 我测试过,如果我把input的id当成参数给document.getElementsByName,还是可以取到的。因为id是唯一的,所以只能作为测试用,不能满足我的要求。 恩 目前看楼上说的差不多 通过document.getElementsByTagName找到所有的元素。然后再通过getAttribute("name")获取属性“name”进行判断 document.getElementsByTagName();getAttribute();要这么复杂吗? ie的document.getElementsByName和document.getElementById都有bugByName只查找img input 这些对象而ById会返回name符合要求的对象测试了下楼主所提到的想象,如果不是动态生成的话还是可以的,动态创建的不可以<html><body><input type="text" name="txt1" id="b_1" value="1"/><input type="text" name="txt1" id="b_2" value="1"/><input type="text" name="txt1" id="b_3" value="1"/><input type="text" name="txt1" id="b_5" value="1"/><script type="text/javascript">var oFrm=document.getElementById("form1");var oHid;for(var i=0;i<4;i++){ oHid=document.createElement("input"); oHid.type="hidden"; oHid.name="hid[]"; oHid.id="a_"+i; oHid.value=i; document.appendChild(oHid);}var aHid=document.getElementsByName("hid[]");var aTxt=document.getElementsByName("txt1");alert("name相同隐藏域个数:"+aHid.length);alert("name相同文本框个数:"+aTxt.length);</script></body></html> 开始我以为是name="pkey[]"中,“[]”的缘故,后来找资料发现应该是ie的问题,现在通过用ByTagName和对name的判断已经实现我的设计。谢谢大家的关心。主要是想偷懒,不想通过循环来判断name,呵呵。 javascript表单验证 火狐下失效 如何解决?? 老鸟请进 如何创建一个空的grid 框架网页 关于复选框全选的问题 基于AJAX的向日葵甘特图组件更新——跟踪甘特图 JS内存泄漏的问题. 如何实现表单的自动提交? 正则表达式问题:根据已知的表达式生成任意一匹配的字符串.在线等待~~~ 多行的select如果滚动? datatables 怎么把行详情折叠 要后台的数据 javascript 没有权限 widget到底为何物?
ie下用document.createElement("input")创建并设置name属性的input控件
用document.getElementsByName()的方法是获取不到的
这是IE的问题
不过你可以用document.getElementsByTagName("input")的方法来来查找出你要的控件的
看来我只能用document.getElementsByTagName来查找后遍历判断了。
因为id是唯一的,所以只能作为测试用,不能满足我的要求。
getAttribute();要这么复杂吗?
ByName只查找img input 这些对象而ById会返回name符合要求的对象
测试了下楼主所提到的想象,如果不是动态生成的话还是可以的,动态创建的不可以
<html>
<body>
<input type="text" name="txt1" id="b_1" value="1"/>
<input type="text" name="txt1" id="b_2" value="1"/>
<input type="text" name="txt1" id="b_3" value="1"/>
<input type="text" name="txt1" id="b_5" value="1"/><script type="text/javascript">
var oFrm=document.getElementById("form1");
var oHid;
for(var i=0;i<4;i++){
oHid=document.createElement("input");
oHid.type="hidden";
oHid.name="hid[]";
oHid.id="a_"+i;
oHid.value=i;
document.appendChild(oHid);
}
var aHid=document.getElementsByName("hid[]");
var aTxt=document.getElementsByName("txt1");
alert("name相同隐藏域个数:"+aHid.length);
alert("name相同文本框个数:"+aTxt.length);
</script>
</body>
</html>
主要是想偷懒,不想通过循环来判断name,呵呵。