私は至る所を見て、ラジオボタンのグループから選択された値を得るためにすべてを試みました。
これが私のHTMLです:
<div id="rates">
<input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate
<input type="radio" id="r2" name="rate" value="Variable Rate"> Variable Rate
<input type="radio" id="r3" name="rate" value="Multi Rate" checked="checked"> Multi Rate
</div>
これが私の.jsです。
var rates = document.getElementById('rates').value;
var rate_value;
if(rates =='Fixed Rate'){
rate_value = document.getElementById('r1').value;
}else if(rates =='Variable Rate'){
rate_value = document.getElementById('r2').value;
}else if(rates =='Multi Rate'){
rate_value = document.getElementById('r3').value;
}
document.getElementById('results').innerHTML = rate_value;
未定義になり続けます。
var rates = document.getElementById('rates').value;
Rates要素はdiv
なので、値はありません。おそらくこれがundefined
の由来です。
checked
プロパティは、要素が選択されているかどうかを教えてくれます:
if (document.getElementById('r1').checked) {
rate_value = document.getElementById('r1').value;
}
これはIE 9以上および他のすべてのブラウザで動作します。
document.querySelector('input[name="rate"]:checked').value;
checked
プロパティを使用して値を取得できます。
var rates = document.getElementsByName('rate');
var rate_value;
for(var i = 0; i < rates.length; i++){
if(rates[i].checked){
rate_value = rates[i].value;
}
}
あなたがEdgeに住んでいる人たちのために:
RadioNodeList という名前のものがあり、そのvalueプロパティにアクセスすると、現在チェックされている入力の値が返されます。これにより、投稿された回答の多くに見られるように、最初に 'checked'入力を除外する必要がなくなります。
フォーム例
<form id="test">
<label><input type="radio" name="test" value="A"> A</label>
<label><input type="radio" name="test" value="B" checked> B</label>
<label><input type="radio" name="test" value="C"> C</label>
</form>
チェックした値を取得するには、次のようにします。
var form = document.getElementById("test");
alert(form.elements["test"].value);
それを証明するためのJSFiddle: http://jsfiddle.net/vjop5xtq/ /
これはFirefox 33で実装されています(他のすべての主要ブラウザはそれをサポートしているようです)。これを正しく機能させるには、古いブラウザではRadioNodeList
に対するpolfyillが必要になります。
私のために働いたものはapi.jquery.comから以下に与えられます。
HTML
<input type="radio" name="option" value="o1">option1</input>
<input type="radio" name="option" value="o2">option2</input>
JavaScript
var selectedOption = $("input:radio[name=option]:checked").val()
変数selectedOptionには、選択されているラジオボタンの値(o1またはo2)が入ります。
別の(明らかに古い)選択肢は、フォーマットを使用することである:[...] [document。 document.mainForm.rads.value;
document.mainForm.onclick = function(){
var radVal = document.mainForm.rads.value;
result.innerHTML = 'You selected: '+radVal;
}
<form id="mainForm" name="mainForm">
<input type="radio" name="rads" value="1" />
<input type="radio" name="rads" value="2" />
<input type="radio" name="rads" value="3" />
<input type="radio" name="rads" value="4" />
</form>
<span id="result"></span>
フォーム内でその名前で要素を参照できます。元のHTMLにはフォーム要素は含まれていません。
ここでフィドル(ChromeとFirefoxで動作します): https://jsfiddle.net/Josh_Shields/23kg3tf4/1/
document.querySelector( 'input [type = radio]:checked')。value;を使用して、選択したチェックボックスの値を取得し、他の属性を使用してname = genderなどをご覧くださいスニペットの下に間違いなく役立つでしょう、
溶液
document.mainForm.onclick = function(){
var gender = document.querySelector('input[name = gender]:checked').value;
result.innerHTML = 'You Gender: '+gender;
}
<form id="mainForm" name="mainForm">
<input type="radio" name="gender" value="Male" checked/>Male
<input type="radio" name="gender" value="Female" />Female
<input type="radio" name="gender" value="Others" />Others
</form>
<span id="result"></span>
ありがとうございました
質問が出されてから1年ほど経ちましたが、答えの大幅な改善が可能であると思いました。ボタンがチェックされているかどうか、またチェックされている場合はその値が何であるかをチェックするので、これが最も簡単で汎用性の高いスクリプトです。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Check radio checked and its value</title>
</head>
<body>
<form name="theFormName">
<input type="radio" name="theRadioGroupName" value="10">
<input type="radio" name="theRadioGroupName" value="20">
<input type="radio" name="theRadioGroupName" value="30">
<input type="radio" name="theRadioGroupName" value="40">
<input type="button" value="Check" onclick="getRadioValue('theRadioGroupName')">
</form>
<script>
function getRadioValue(groupName) {
var radios = theFormName.elements[groupName];
window.rdValue; // declares the global variable 'rdValue'
for (var i=0; i<radios.length; i++) {
var someRadio = radios[i];
if (someRadio.checked) {
rdValue = someRadio.value;
break;
}
else rdValue = 'noRadioChecked';
}
if (rdValue == '10') {
alert('10'); // or: console.log('10')
}
else if (rdValue == 'noRadioChecked') {
alert('no radio checked');
}
}
</script>
</body>
</html>
このように、他の関数内でその関数を呼び出すこともできます。
function doSomething() {
getRadioValue('theRadioGroupName');
if (rdValue == '10') {
// do something
}
else if (rdValue == 'noRadioChecked') {
// do something else
}
}
あなたのフォーム要素が以下のmyForm
変数によって参照され、あなたのラジオボタンが "my-radio-button-group-name"という名前を共有すると仮定すると、以下は純粋なJavaScriptと規格に準拠します。どこにでも):
myForm.elements.namedItem("my-radio-button-group-name").value
上記の場合は、 checked (または選択されているので選択されている)ラジオボタン要素がある場合はその値、それ以外の場合はnull
の値になります。解決策の核心は、ラジオボタンで特に機能するnamedItem
関数です。
HTMLFormElement.elements 、 HTMLFormControlsCollection.namedItem 、特に RadioNodeList.value を参照してください。namedItem
通常 はRadioNodeList
オブジェクトを返します。
私はMDNを使用しています。なぜなら、少なくともある程度までは、標準への準拠を追跡することができ、そして多くのWhatWGおよびW3Cの出版物よりも理解しやすいからです。
Javascriptでは、上のコードでIdの "getElementById()
"にId ではなくnameが含まれているので、値を取得することができます。
if (document.getElementById('r1').checked) {
rate_value = document.getElementById('r1').value;
}
コードに従ってこのrate_valueを使用してください。
HTMLコード:
<input type="radio" name="rdoName" value="YES"/>
<input type="radio" name="rdoName" value="NO"/>
JQUERY CODE:
var value= $("input:radio[name=rdoName]:checked").val();
$("#btnSubmit").click(function(){
var value=$("input:radio[name=rdoName]:checked").val();
console.log(value);
alert(value);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="rdoName" value="YES"/> YES
<input type="radio" name="rdoName" value="NO"/> NO
<br/>
<input type="button"id="btnSubmit"value="Which one Selected"/>
あなたが得るでしょう
value="YES" //if checked Radio Button with the value "YES"
value="NO" //if checked Radio Button with the value "NO"
ラジオボタンを直接何度も呼び出すと、[確認]ボタンではなく、[最初の]ボタンの値が表示されます。どのラジオボタンでチェックされているかを確認するためにラジオボタンをループするのではなく、後で自由に検索できる変数を設定するonclick
javascript関数を呼び出すことを好みます。
<input type="radio" onclick="handleClick(this)" name="reportContent" id="reportContent" value="/reportFleet.php" >
どの呼び出し:
var currentValue = 0;
function handleClick(myRadio) {
currentValue = myRadio.value;
document.getElementById("buttonSubmit").disabled = false;
}
追加の利点は、私がデータを扱ったり、ボタンのチェックに反応することができるということです(この場合、SUBMITボタンを有効にします)。
以前に提案された機能の改良
function getRadioValue(groupName) {
var _result;
try {
var o_radio_group = document.getElementsByName(groupName);
for (var a = 0; a < o_radio_group.length; a++) {
if (o_radio_group[a].checked) {
_result = o_radio_group[a].value;
break;
}
}
} catch (e) { }
return _result;
}
.find()
を使ってチェックされた要素を選択することができます。
var radio = Array.from(document.querySelectorAll('#rate input'))
var value = radio.length && radio.find(r => r.checked).value
単に使用してください:document.querySelector('input[rate][checked]').value
JQueryを使用している場合
$('input[name="rate"]:checked').val();
var rates=document.getElementsByName("rate");
for (i = 0; i < rates.length; i++) {
if (rates[i].checked) {
console.log(rates[i].value);
rate=rates[i].value;
document.getElementById("rate").innerHTML = rate;
alert(rate);
}
}
<div id="rates">
<input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate
<input type="radio" id="r2" name="rate" value="Variable Rate"> Variable Rate
<input type="radio" id="r3" name="rate" value="Multi Rate" checked="checked"> Multi Rate
</div>
</br>
<div id='rate'>
</div>
JQuery
を使用している場合は、ラジオボタンのグループに以下のスニペットを使用してください。
var radioBtValue= $('input[type=radio][name=radiobt]:checked').val();
<form id="rates">
<input type="radio" name="rate" value="Fixed Rate"> Fixed
<input type="radio" name="rate" value="Variable Rate"> Variable
<input type="radio" name="rate" value="Multi Rate" checked> Multi
</form>
それで….
var rate_value = rates.rate.value;
必要な出力を取得するためにjQuery.click関数を使用しました。
$('input[name=rate]').click(function(){
console.log('Hey you clicked this: ' + this.value);
if(this.value == 'Fixed Rate'){
rate_value = $('#r1').value;
} else if(this.value =='Variable Rate'){
rate_value = $('#r2').value;
} else if(this.value =='Multi Rate'){
rate_value = $('#r3').value;
}
$('#results').innerHTML = rate_value;
});
それが役に立てば幸い。
ボタンがフォーム内にある場合var myform = new FormData(getformbywhatever);
myform.get("rate");
上記のQuerySelectorはより良い解決策です。しかし、この方法は理解しやすいものです。特にCSSについての手がかりがない場合は特にそうです。それに加えて、入力フィールドはとにかく形になる可能性が非常に高いです。
確認しませんでした、他にも同じような解決策があります、繰り返して申し訳ありません
var rates = document.getElementById('rates').value;
そのようなラジオボタンの値を取得することはできません代わりに
rate_value = document.getElementById('r1').value;
iDで値を確認してください。
var CheckedValues = ($("#r1").is(':checked')) ? 1 : 0;
PHPでは、それは非常に簡単です
htmlページ
Male<input type="radio" name="radio" value="male"><br/>
Female<input type="radio" name="radio" value="female"><br/>
Others<input type="radio" name="radio" value="other"><br/>
<input type="submit" value="submit">
フォームからphpに値を取ります
$radio=$_POST['radio'];<br/>
use php if(isset($_POST['submit']))<br/>
{<br/>
echo "you selected".$radio."thank u";<br/>
}