作者No (you stay there)
看板Ajax
标题Re: [问题] 用DOM新增的元素抓不到值?
时间Sun Oct 4 00:49:58 2009
※ 引述《thirteeen (13)》之铭言:
: 有耶 我有在送出的扭上呼叫测试的那段
: <input name="send_sql" type="submit" id="send_sql" value="确定" onClick="getall()">
: 但是还是抓不到 我的allclass1_text.length都一直是原本的数量
: dom新增的还是找不到说
我一开始用火狐都正常,後来测一下才知道...
Firefox 正确
Google Chrome 正确
IE 新增的抓不到,见鬼XDDD
找了些资料,IE没办法动态设定name
http://www.easy-reader.net/archives/2005/09/02/death-to-bad-dom-implementations/
有IE的解决方式,不过解法在其他浏览器会挂掉
只好分开写 囧
把测试页改成下面这样就可以了
大量用的话,可能也把新增物件再独立出来会方便些
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5" />
<script>
var count=0;
function del1()
{
alert('XD')
}
function append(){
var div1=document.createElement("div");
div1.id="div"+count;
div1.name="div"+count;
var text_num;
if(document.all)
{ //IE
text_num=document.createElement('<INPUT name="class1_text">');
}
else
{
text_num=document.createElement('INPUT');
text_num.name="class1_text";
}
text_num.type="text";
text_num.value="其他类";
text_num.id="text"+count;
div1.appendChild(text_num);
var db1_num=document.createElement("INPUT");
db1_num.type="button";
db1_num.id="dbc"+count;
db1_num.value="删除";
db1_num.name="dbc"+count;
db1_num.onclick=del1;
div1.appendChild(db1_num);
var AD = document.getElementById("alldiv");
AD.appendChild(div1);
count++;
}
function getall()
{
var allclass1_text=document.getElementsByName("class1_text");
alert('length:'+allclass1_text.length);
for(i=0;i<allclass1_text.length;i++)
alert(allclass1_text[i].value);
}
</script>
</head>
<body>
<input type="button" value=" new " onclick="append()">
<input type="button" value=" get " onclick="getall()">
<div id="alldiv">
<input type="text" value="1" name="class1_text">
<input type="text" value="2" name="class1_text">
</div>
</body>
</html>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.71.4.142