如何得到动态创建的控件的值
<html>
<head>
</head>
<body>
<table width=100%>
<tr>
<td width=50%>
</td>
<td width=50% >
<form name=key >
<DIV id=text> </DIV>
<input type=button value= '确定 ' onClick= 'javascript:query(); '>
</form>
</td>
</tr>
</table>
</body>
<script language= "javascript ">
var list = new Array(108);
for (int i = 0; i < 108; i++)
list[i] = "-1 ";
var fso = new ActiveXObject( "Scripting.FileSystemObject ");
alert( "ok ");
var fData = fso.OpenTextFile( "E:\\office\\doc\\other\\td.txt ", 1);
var sel = " <input type= 'radio ' name= 'selid ' value= '1 '/> ";
var strText = " ";
var i = 0;
while (true) {
strText += " <p> " + fData.readline() + " </p> ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '1 ' checked /> 明显不符 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '2 ' /> 大多不符 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '3 ' /> 难以决定 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '4 ' /> 大体相符 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '5 ' /> 非常符合 ";
i++;
if (i == 108)
break;
}
fData.close();
document.getElementById( "text ").innerHTML = strText;
function query() {
var els = document.getElementsByTagName( "input ");
for(var i = 0, i < 108; i++) {
alert(els[i].value);
}
}
</script>
</html>
大家帮忙看看,具体功能就是读文件得到要创建的控件名,单击按钮,输出所有控件的值
[解决办法]
首先,你的需求并不十分明显.
1,你的第二行,有语法错误,是for(var i = 0;不是for(int i = 0;
2,最后一个循环处,改为for(var i = 0; i < 108;
然后,你是想取得所有以selid开头的的INPUT对象的值吧?
var els = document.getElementsByTagName( "INPUT ");
for(var i = 0, l = els.length; i < l; i++)
{
if (els[i].name.match(/^selid\d+$/gi)) alert(els[i].value);
}
[解决办法]
看见拼接的html输出就倒胃口...学会dom吧~~~
[解决办法]
看见拼接的html输出就倒胃口...学会dom吧~~~
==========================================
能不用DOM尽量不要用DOM!
楼主处理的方法是对的,可以用getElementsByName来获得指定类型的控件,只是注意拼写;
可以参考matrixy(处女主任)的方法测试一下!
[解决办法]
input控件的输出往往涉及到对象的控制,用dom容易搞点~~~~
也不会出现创建了控件还不知道怎么取值的事~~~
[解决办法]
测试了一下:
<html>
<head>
</head>
<body>
<table width=100%>
<tr>
<td width=50%>
</td>
<td width=50% >
<form name=key >
<DIV id=text> </DIV>
<input type=button value= '确定 ' onClick= 'javascript:query(); '>
</form>
</td>
</tr>
</table>
</body>
<script language= "javascript ">
var list = new Array(108);
for(var t=0;t <list.length;t++){
list[t] = "-1 ";
var fso = new ActiveXObject( "Scripting.FileSystemObject ");
//alert( "ok ");
var fData = fso.OpenTextFile( "C:\\1.txt ", 1);
var sel = " <input type= 'radio ' name= 'selid ' value= '1 '/> ";
var strText = " ";
var i = 0;
while (true) {
strText += " <p> " + fData.readline() + " </p> ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '1 ' checked /> 明显不符 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '2 ' /> 大多不符 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '3 ' /> 难以决定 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '4 ' /> 大体相符 ";
strText += " <input type= 'radio ' name= 'selid " + i + " ' value= '5 ' /> 非常符合 ";
i++;
if (i == 108) {
break;
}
}
fData.close();
document.getElementById( "text ").innerHTML = strText;
}
function query() {
var els = document.getElementsByTagName( "input ");
for(var i = 0; i < 108; i++) {
alert(els[i].value);
}
}
</script>
</html>
[解决办法]
我是能用字符串拼接HTML就尽量不用DOM,呵呵,效率的差别,不是一般般的大的.
[解决办法]
var i = 0;
var strText = " <table border= '1 '> ";
while(true) {
if (i == 20) break;
if (i%2) {
strText += " <tr bgcolor= 'red '> ";
} else {
strText += " <tr bgcolor= 'blue '> ";
}
strText += " <td> </td> </tr> ";
i++;
}
strText += " </table> ";
document.write(strText);
正确啊,会不会你刚才贴的是完全的代码?难道i未定义未初始化????还有TR里必须有TD才能显示出来的.