日期:2014-05-16  浏览次数:20349 次

表单动态添加控件,如果判断与取值?
如:动态控件:   <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>