表单动态添加控件,如果判断与取值?
如:动态控件: <input name= "n1 " type= "text "> , 页面取值可能出现三种情况;
1、控件 n1 没有,因为没有添加;
2、控件 n1 只添加1次; 不是数组;
3、控件 n1t添加多次; 数组;
现在有如下问题:
当有控件 n1 添加一次,或多次时, 我如何 取得第一个值 n1控件的值啊?
当然我知道,如果就添加一个当然是: n1.value; 添加多个就是 n1[i].value;
但我并不知道,我取得时候是1个还是多个啊?
用了 n1.length , 但是 当我的控件是 select 时, n1.length 取道的是 下拉列表的 下拉记录数, 而不是控件数组的个数;
请问我如何取得动态控件的值?
请高手帮忙!
------解决方案--------------------当有控件 n1 添加一次,或多次时, 我如何 取得第一个值 n1控件的值啊?
---
document.all( "n1 ").value
多个
-----
for(var i=0;i <document.all( "n1 ").length;i++)
{
alert(document.all( "n1 ")[i].value);
}
------解决方案--------------------var arr=document.getElementsByName( "n1 ");
alert(arr.length);//没有添加为0,n个为n
var obj=arr[i].value;//取到第i+1 个的控件的value
------解决方案--------------------只有一个的时候
---
if(!document.all( "n1 "))
{
alert(不存在n1控件);
}
else
{
alert(document.all( "n1 ").value);
}
多个
--------
if(document.all( "n1 ").length != undefined)
{
alert(document.all( "n1 ")[0].value)
}
------解决方案--------------------如果想动态取控件ID的话可以这样
var i=0;
动态设定控件ID
id= 'BtnDel "+(i)+ " '
i++
------解决方案--------------------to lz:
在下测过才回的帖,IE通过:
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> new page </title>
</head>
<body>
<select name=n1>
<option value=1> 1 </option>
<option value=2> 2 </option>
<option value=3> 3 </option>
<option value=4> 4 </option>
<option value=5> 5 </option>
</select>
<input type=text name=n1 value= "test ">
</body>
<script language= "javascript ">
var arr=document.getElementsByName( "n1 ");
alert( "共 "+arr.length+ "个! ");//没有添加为0,n个为n
for(var i=0;i <arr.length;i++){
alert( "第 "+(i+1)+ "个: "+arr[i].tagName+ ".value===> "+arr[i].value);//取到第i+1 个的控件的value
}
</script>
</html>
------解决方案-------------------- <html>
<head>
<script language=javascript>
function a() {
var o=document.all.n1;
alert( "有 "+o.length+ " 个select ");
for(var i=0;i <o.length;i++){
alert( "第 "+i+ " 个select的值为 "+o[i].value);
}
}
</script>
</head>
<body onload= "a(); ">
<select name=n1>
<option value=1 selected> 1 </option>
<option value=2 > 2 </option>
<option value=3> 3 </option>
<option value=4> 4 </option>
<option value=5> 5 </option>
</select>