document.getElementsById('ff').value
首先这种写法:控件里面根本没有id属性,不可以用getElementsById(写错了,是getElementById可以用chks = document.getElementsByName("ff");来获得控件数组
再对chks循环就可以取得值了
首先这种写法:控件里面根本没有id属性,不可以用getElementsById(写错了,是getElementById可以用chks = document.getElementsByName("ff");来获得控件数组
再对chks循环就可以取得值了
{
var a = document.getElementsByName("ff");
var s = [];
for(var i=0; i<a.length; i++)
{
if(a[i].type=="checkbox" && a[i].checked)
{
s[s.length] = a[i].value;
}
}
return s;
}
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
//通过getElementByTag
function getCbxByTag()
{
var cbx = document.getElementsByTagName("input");
var cbxValue="";
for(var i=0;i<cbx.length;i++)
{
if(cbx[i].type =="checkbox")
{
if (cbx[i].checked)
{
if (cbxValue.length>0)
{ cbxValue += ","+cbx[i].value;
}
else
{
cbxValue = cbx[i].value ;
}
}
}
}
alert(cbxValue);
return false;
}//通过getElementsByName
function getCbxByName()
{
var cbx = document.getElementsByName("ff");
var cbxValue="";
for(var i=0;i<cbx.length;i++)
{
if (cbx[i].checked)
{
if (cbxValue.length>0)
{ cbxValue += ","+cbx[i].value;
}
else
{
cbxValue = cbx[i].value ;
}
}
}
alert(cbxValue);
return false;
}
//-->
</SCRIPT>
<BODY>
<form name="form" id="form" method="post" onsubmit="JavaScript:return getCbxByTag();">
<input name="ff" type="checkbox" id="ff1" value="1">1
<input name="ff" type="checkbox" id="ff2" value="2">2
<input name="ff" type="checkbox" id="ff3" value="3">3
<input name="ff" type="checkbox" id="ff4" value="4">4
<input type="submit" name="Submit" value="提交">
<input type="button" name="buttun2" value="提交2" onclick="return getCbxByName()">
</form>
</BODY>
</HTML>
getElementsById没有这个方法吗?我一直以为既有getElementById又有getElementsById。
既然getElements返回的是数组怎么还要循环?不能直接输出吗?
初学JS问题很菜请别见笑。
s[s.length] = a[i].value;不是s[s.length] = a[i];就可以了吗?可以解释下吗?刚学JS...不要见怪!