2011-07-27 56 views
0

我有一個函數,在將表單的名稱更改爲數組之前用於工作。當您爲一個單選按鈕選擇是或否時,自動選擇()將爲另一組單選按鈕選擇是或否。我遇到的問題是,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指數遞增。

+0

我只注意到你的收音機也有一個ID的一個,爲什麼你可以不使用ID訪問它 –

+0

我最終使用了大多數表單元素的id。事實證明,這段代碼確實起作用,只有另一個javascript函數在相同的onclick屬性中失敗,從而無法運行。 – Arosboro

回答

1

您可以使用jQuery返回項目的數組,然後訪問要與指數

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

+0

jquery可能是處理這個問題的最好方法。我正在嘗試更新遺留應用程序,而不用重寫太多的代碼。我使用了一個隱藏字段,其中包含當前表單的ID並將其附加到單選按鈕字段的ID的名稱中。 – Arosboro

相關問題