2011-05-20 103 views
1
<input type="radio" checked="checked" value="true" name="child"> 
<span class="label">Show</span> 
<input type="radio" class="hide" value="false" name="child"> 
<span class="label">Hide</span> 

,並在同一頁面檢查所有單選按鈕檢查具有特定值

<input type="radio" checked="checked" value="true" name="baby"> 
<span class="label">Show</span> 
<input type="radio" class="hide" value="false" name="baby"> 
<span class="label">Hide</span> 

我需要知道,如果有value="false"所有的單選按鈕使用JavaScript檢查了另一個單選按鈕。

注:單選按鈕的名稱是不同的

回答

1

你可以試試這個:

function testRadios() { 
    var r = document.getElementsByTagName("input"); 

    for (var i=0; i < r.length; i++) { 
     if ( (r[i].type == "radio") 
      && (r[i].value == "false") 
      && (r[i].checked != "checked")) { 
      return false; 
    } 
    return true; 
} 

PS:使用<label>而不是<span class="label">

2

如果你使用jQuery,這是非常乾淨:

if ($("input[type='radio'][value='false']").not(':selected').length==0) { 
    // Do what you want 
} 

jQuery的表達是指所有的假單選按鈕選擇

1

boudou通過35秒打我......

然而,除了for你可以使用一個foreach邏輯:

var buttons = document.getElementsByTagName("input"); 

for (var i = 0; i < buttons.length; i++) { 
    var button = buttons[i]; 
    var id = button.getAttribute("id"); 
    var type = button.getAttribute("type"); 
    var value = button.getAttribute("value"); 
    var checked = button.getAttribute("checked"); 
    if (type === "radio" && value === "false" && checked === "checked") { 
     alert(id); 
    } 
} 

該腳本可以被濃縮,它是這樣寫的,讓一個更好理解。

查看演示here

+0

考慮+1 a -1,投票被鎖定。見http://stackoverflow.com/a/243778/247702爲什麼你不應該使用'for in'循環。 – Stijn 2012-06-04 11:40:29

+0

@Stijn:更新了示例。 – Albireo 2012-06-05 14:36:14