javascript生成的radio不能多选(name不同)

sealrose 2010-01-27 06:42:25
var column_id =1; //记录是第几行
var testId=1;
function addRow()
{
var root = document.getElementById("tbody");
var allRows = root.getElementsByTagName('tr');
var cRow = allRows[1].cloneNode(true)
column_id ++;
cRow.childNodes[1].childNodes[0].name='columnName'+column_id;
cRow.childNodes[1].childNodes[0].value="";
cRow.childNodes[2].childNodes[1].name='columnType'+column_id;

cRow.childNodes[3].childNodes[1].name='isForAdd'+column_id;
cRow.childNodes[3].childNodes[3].name='isForAdd'+column_id;
testId++;
cRow.childNodes[3].childNodes[1].id='test'+testId;
testId++;
cRow.childNodes[3].childNodes[3].id='test'+testId;

cRow.childNodes[4].childNodes[1].name='addType'+column_id;
var insertPos = document.getElementById("insertPos");
root.insertBefore(cRow , insertPos);
// root.appendChild(cRow);
}
下面是克隆的那行HTML

<tr>
<td>
字段名
</td>
<td width="20%">
<input type="text" name="columnName1">
</td>
<td align="left" width="20%">
字段名称
<select id="tableSel" name="columnType1">
<option value="varchar(20)">
varchar(20)
</option>
<option value="varchar(40)">
varchar(40)
</option>
<option value="varchar(60)">
varchar(60)
</option>
<option value="varchar(80)">
varchar(80)
</option>
<option value="varchar(110)">
varchar(110)
</option>
<option value="varchar(200)">
varchar(200)
</option>
<option value="int">
int
</option>
<option value="date">
date
</option>
<option value="long">
long
</option>
</select>

</td>
<td width="20%">
用于添加
<input type="radio" checked="checked" id="test1" name="isForAdd1" value="1">

<input type="radio" name="isForAdd1" id="test2" value="0" >

</td>
<td width="20%" align="left">
用什么控件添加
<select id="addType1" name="addType1">
<option value="text">
text
</option>
<option value="select">
select
</option>
<option value="date">
时间控件
</option>
<option value="addr">
地址控件
</option>
</select>
</td>

</tr>
...全文
130 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sealrose 2010-03-01
  • 打赏
  • 举报
回复
问题已解决, 现告诉问题出在哪里. 在javascript中 是不能动态改变html控件的name的, (能改但改了不会立即生效, 只有在表单提交后才生效)

所以可以通过其它的方式动态识别新创建的控件.
sealrose 2010-01-28
  • 打赏
  • 举报
回复
<input type="radio" checked="checked" id="test1" name="isForAdd1" value="1">
<input type="radio" name="isForAdd1" id="test2" value="0" >
<input type="radio" checked="checked" id="test1" name="isForAdd2" value="1">
<input type="radio" name="isForAdd2" id="test2" value="0" >
上面4个radio控件时可以同时让2个被选中, 但是用javascript生成上面的4个控件就只能让一个被选中, JS代码在上面有了, 生成的时候都给他们动态生成了不同的name和id
Bird_fro 2010-01-28
  • 打赏
  • 举报
回复
楼主是想问啥呢
nabber 2010-01-28
  • 打赏
  • 举报
回复
你的
id是相同的?
lovesi3344 2010-01-28
  • 打赏
  • 举报
回复
帮顶
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-01-27 06:42
社区公告
暂无公告