2017-03-09 125 views
0

我試過的其他東西都沒有奏效。我只想要一個條件來檢查是否選擇了其中一個收音機,並且總是會選擇一個收音機。我需要知道選擇哪一個。如何檢查單選按鈕的值

<label for="starting">Starting Player:</label> <input type="radio" name="starting" value="1" checked>P1 <input type="radio" name="starting" value="2" id="startingPlayer">P2 document.getElementById("startingPlayer").checked==true

要麼總是產生真或假。任何方法來解決這個問題?

+1

可以使用選擇器:'document.querySelector( '[名稱= 「開始」]:檢查')'。 – RobG

回答

1

您需要遍歷該組按鈕並檢查.checked屬性。

您可以隨時做到這一點。在這裏,我正在按一下按鈕。

var buttons = document.querySelectorAll("input[type=radio]"); 
 
var btnCheck = document.querySelector("button"); 
 
btnCheck.addEventListener("click", checkSelected); 
 

 
function checkSelected(){ 
 
    for(var i = 0; i < buttons.length; ++i){ 
 
    if(buttons[i].checked){ 
 
     console.clear(); 
 
     console.log("The selected radio button has a value of: " + buttons[i].value); 
 
    } 
 
    } 
 
}
<label for="starting">Starting Player:</label> 
 
<input type="radio" name="starting" value="1" checked>P1 
 
<input type="radio" name="starting" value="2" id="startingPlayer">P2 
 
<button>Get Selected Button Value</button>

0

ES6溶液。使用Array#forEachchange事件綁定到每個單選按鈕並記錄實際選定按鈕的值。

var elems = document.getElementsByName('starting'); 
 
Array.from(elems).forEach(v => v.addEventListener('change', function() { 
 
    Array.from(elems).forEach(v => v.checked ? console.log(v.getAttribute('value')) : null) 
 
}))
<label for="starting">Starting Player:</label> 
 
<input type="radio" name="starting" value="1" checked>P1 
 
<input type="radio" name="starting" value="2" id="startingPlayer">P2

+0

這將獲得每個被檢查的輸入,包括所有單選按鈕集和複選框。最好以* name *選擇符開始,可以是'getElementsByName('starting')'或'querySelectorAll('[name =「starting」]')' – RobG

+0

@RobG好主意。 –