郁闷的javascript,请大虾们帮忙!

afoskoo 2005-08-05 02:21:44
下面的程序是:
当点击 Add ,就会 Panel上创建一个名为t[]的textbox.
点击submit时弹出Panel的innerHTML,出现这种情况:
IE: 新创建的textbox的name属没有出现在Panel的innerHTML中.
Firefox:在Panel的innerHTML中可以看到新创建的textbox均名为t[]
表单f提交之后,不管在IE或Firefox下,用php显示$_POST数组,均如下:
Array ( [t1] => 890 [t] => Array ( [0] => 8 [1] => 89 [2] => 890 ) )
好明显,javascript创建的t[],是成功提交上去了.
问题就是:
在IE,执行 alert(document.getElementsByName("t[]").length)却为0,不论已经创建了多少个t[],均弹出0,而在firefox上即弹出正确的t[]个数.
这个让我感到好郁闷,IE让我郁闷,为什么创建的textbox不能给name赋值,但通过PHP测试,又显示是有t[]这个名称的textbox被提交上去.
说了一大堆,不知能否说明问题,请大家帮忙研究一下.谢谢.

代码如下:
index1.php:

<? print_r($_POST); ?>
<form method="POST" name="f">
<input type="text" name="t1" /><a href="javascript:CreateNewBox();">Add</a>
<div id="Panel"></div>
<div><a href="javascript:SubmitForm();">Submit</a></div>
<div id="Result"></div>
</form>
<script language="javascript">
function CreateNewBox(){
var panel=document.getElementById("Panel");
var el=document.createElement("input");
el.type="text";
el.name="t[]";
el.size="2";
el.value=document.f.t1.value;
panel.appendChild(el);
}
function SubmitForm(){
var panel=document.getElementById("Panel");
alert(panel.innerHTML);
document.f.submit();
}
</script>
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
afoskoo 2005-08-05
  • 打赏
  • 举报
回复
呵呵,真的可以用getElementsByName取得啊...
但不设ID就不行,这样怪诞.
ice_berg16 2005-08-05
  • 打赏
  • 举报
回复
你仍然可以用getElementsByName来取得
afoskoo 2005-08-05
  • 打赏
  • 举报
回复
但好像没有 getElementsById 方法,只有 getElementById
ice_berg16 2005-08-05
  • 打赏
  • 举报
回复
以前遇到过。name加上不好使,这时候加上ID就行了

function CreateNewBox(){
var panel=document.getElementById("Panel");
var el=document.createElement("input");
el.type="text";
el.id="t[]";
el.name="t[]";
el.size="2";
el.value=document.f.t1.value;
panel.appendChild(el);
}
稍微有点无敌 2005-08-05
  • 打赏
  • 举报
回复
帮你顶!!!

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧