Доступ к элементу формы, когда name является массивом и есть две переключатели с одинаковым именем - PullRequest
0 голосов
/ 27 июля 2011

У меня есть функция, которая работала до того, как я изменил имена своей формы на массивы.Когда вы проверяете «да» или «нет» для одного переключателя, функция «Автовыбор» () выбирает «да» или «нет» для другого набора переключателей.У меня проблема в том, что 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 Ответ

1 голос
/ 27 июля 2011

Вы можете использовать jQuery, чтобы вернуть массив элементов, а затем получить доступ к тому, который вам нужен, с индексом

var el1=$('input[name="elementName"]')[0];
var el2=$('input[name="elementName"]')[1];

и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...