当name是一个数组并且有两个具有相同名称的单选按钮时访问表单元素

时间:2011-07-27 16:10:16

标签: javascript webforms

在将表单名称更改为数组之前,我有一个以前工作的函数。当您为一个单选按钮检查是或否时,autoselect()为另一组单选按钮选择是或否。我遇到的问题是javascript不允许我按名称访问元素,因为有两个具有相同名称的元素。这是我的代码:

<script language="javascript" type="text/javascript">
function autoselect(selectedOption, updateCompleted)
{
if(selectedOption.value=="No")
    updateCompleted[0].checked=true;
else
    updateCompleted[1].checked=true;
}
</script>

<input type="radio" onclick="autoselect(this,document.form<?php echo $i; ?>.elements['data[<?= $i; ?>][completed]']);" name="data[<?= $i ?>][needed]" value="Yes">Yes

<input type="radio" onclick="autoselect(this,document.form<?php echo $i; ?>.elements['data[<?= $i; ?>][completed]']);" name="data[<?= $i ?>][needed]" value="No">No

...

<input type="radio" id="completed<?php echo $i."1"; ?>" name="data[<?= $i ?>][completed]" value="Yes"><span id="completed<?php echo $i."3"; ?>">Yes</span>

<input type="radio" id="completed<?php echo $i."2"; ?>" name="data[<?= $i ?>][completed]" value="No"><span id="completed<?php echo $i."4"; ?>">No</span>

每个页面上有多个具有相同元素的表单,并且使用$ i索引递增它们的名称。

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery返回项目数组,然后使用索引

访问所需项目
var el1=$('input[name="elementName"]')[0];
var el2=$('input[name="elementName"]')[1];