getElementsByName的问题 如果用getElementsByTagName也是麻烦因为不止这个input还要一个一个判断如果没办法也只能那样了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script>document.forms[0].getElementsByName("dd");</script> 这样好象只有一个dd的时候会报"undefined"的错误 if (document.forms[0]["dd"] ) if (document.forms[0]["dd"] )if (document.forms[0]["dd"].length ) 为什么name相同的一组checkbox却不在同一个form里面?谁会写出这种先天不足的代码? 例如有两个form呢什么情况都有呢 “什么情况都有”这话是没错,但是有些情况的不应当出现,我们称之为“规范”。就比如同名的一组checkbox应当属于同一个form容器。eg.让你选择喜欢的水果,有3个checkbox分别对应“苹果”、“香蕉”、“葡萄”,现在你把苹果的那个checkbox放在form外面,如果人家全选了,提交以后如何取值?苹果不要了? 不好意思checkbox是我举的一个例子而已不一定是checkbox可能是select text举个例而已 道理是一样的,你为一组控件取了相同的名字,意味着它们应该属于同一类东西,应该属于同一个父控件,如果你需要定位到其中的某一些控件,那就意味着这些控件跟其它的不同,不应该属于同一类东西,不应该享有相同的name~ 没用过ByName据说这个好像不符合W3C标准,,<script language="javascript">function test(){var x=document.getElementById('ff').getElementsByTagName('input');for (var i=0;i<x.length;i++){if (x[i].name=='dd') alert(i);};}</script><input name="dd" type="checkbox" value=""><form id="ff"><input name="dd" type="checkbox" value=""><input name="dd" type="checkbox" value=""></form><input type="button" value="ClickMe" onclick="test();">会弹出两个值:0和1,也就是第一个input里的name值和第2个input里的name值分别可以用x[0].name和x[1].name表示出来 var dd = document.getElementById("ff").getElementsByName("dd"); document.getElementById("ff").elements('dd') /** *<pre>通过className得到元素集合</pre> * @param {Object} className css类名 * @param {Object} tag Dom的tagname * @param {Object} root 开始查找的根节点 */function sinapay_getElementsByClassName(className, tag, root){ tag = tag || '*'; root = root || document; var i = j = 0, a = [], elements = root.getElementsByTagName(tag), l = elements.length, nodes = []; for (; i < l; i++) { j = 0; a = elements[i].className.split(" "); ll = a.length; for (; j < ll; j++) if (className == a[j]) nodes.push(elements[i]); } return nodes;}也许有用 如何延迟鼠标事件 网站如何部署比较合理? 返回的对象如何使用?? 大家都在用哪些函数画圆弧?? 表单提交后 如何刷新? 框架问题 父窗口、子窗口的传值问题。。 请教checkbox问题??谢谢 xinyunyishui(心云意水) 领分:他人勿入! Cannot read property 'insertBefore' of null setTimeout的循环难题 回调函数为什么获取不到对象?
document.forms[0].getElementsByName("dd");
</script>
if (document.forms[0]["dd"].length )
什么情况都有呢
“什么情况都有”这话是没错,但是有些情况的不应当出现,我们称之为“规范”。
就比如同名的一组checkbox应当属于同一个form容器。
eg.让你选择喜欢的水果,有3个checkbox分别对应“苹果”、“香蕉”、“葡萄”,现在你把苹果的那个checkbox放在form外面,如果人家全选了,提交以后如何取值?苹果不要了?
checkbox是我举的一个例子而已
不一定是checkbox可能是select text
举个例而已
<script language="javascript">
function test(){
var x=document.getElementById('ff').getElementsByTagName('input');
for (var i=0;i<x.length;i++){if (x[i].name=='dd') alert(i);};
}
</script><input name="dd" type="checkbox" value="">
<form id="ff">
<input name="dd" type="checkbox" value="">
<input name="dd" type="checkbox" value="">
</form>
<input type="button" value="ClickMe" onclick="test();">会弹出两个值:0和1,也就是第一个input里的name值和第2个input里的name值分别可以用x[0].name和x[1].name表示出来
/**
*<pre>通过className得到元素集合</pre>
* @param {Object} className css类名
* @param {Object} tag Dom的tagname
* @param {Object} root 开始查找的根节点
*/
function sinapay_getElementsByClassName(className, tag, root)
{
tag = tag || '*';
root = root || document;
var i = j = 0, a = [], elements = root.getElementsByTagName(tag), l = elements.length, nodes = [];
for (; i < l; i++)
{
j = 0;
a = elements[i].className.split(" ");
ll = a.length;
for (; j < ll; j++)
if (className == a[j])
nodes.push(elements[i]);
}
return nodes;
}也许有用