javascript - 選択イベント - jsp ラジオボタン 値 取得




選択したラジオボタンの値を取得する方法は? (17)

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"

私はどこからでも見て、ラジオボタンのグループから選択した値を得るためにすべてを試しました。

ここに私の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;

私は未定義になっています。


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に価値を引き出す
$ラジオ= $ _ POST ['ラジオ'];
PHPを使うif(isset($ _ POST ['submit'])))
{
あなたが選択したエコー "$"ラジオ "ありがとう";
}


jQueryを使用している場合:

$('input[name="rate"]:checked').val();


.find()を使用して、チェックされた要素を選択することができます:

var radio = Array.from(document.querySelectorAll('#rate input'))

var value = radio.length && radio.find(r => r.checked).value

JQueryを使用している場合は、ラジオボタンのグループについては、以下のスニペットを使用してください。

var radioBtValue= $('input[type=radio][name=radiobt]:checked').val();

document.querySelector( 'input [type = radio]:checked')を使用します。 選択したチェックボックスの値を取得するには、他の属性を使用して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>

ありがとうございました


あなたのために、端に住む人々:

RadioNodeListと呼ばれるものがあり、そのvalueプロパティにアクセスすると、現在チェックされている入力の値が返されます。 これにより、最初に投稿された回答の多くに見られるように、「チェックされた」入力を除外する必要がなくなります。

フォームの例

<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/ ://jsfiddle.net/vjop5xtq/

これはFirefox 33で実装されたことに注意してください(他のすべての主要なブラウザがそれをサポートしているようです)。 古いブラウザでは、これが適切に機能するにはRadioNodeListのpolfyillが必要です


フォーム要素が以下のmyForm変数によって参照され、ラジオボタンが "my-radio-button-group-name"という名前を共有していると仮定すると、以下は純粋なJavaScriptと標準に準拠しています(ただし、どこにでも):

myForm.elements.namedItem("my-radio-button-group-name").value

上の例では、ラジオボタン要素がある場合はそれがチェックされた (または選択されたときに選択された)値をnullます。そうでない場合はnullます。 ソリューションの要点は、ラジオボタンで特に機能するnamedItem関数です。

namedItem は通常 RadioNodeListオブジェクトを返すRadioNodeListHTMLFormElement.elementsHTMLFormControlsCollection.namedItem 、特にRadioNodeList参照してください。

私はMDNを使用しています。なぜなら、標準コンプライアンスを少なくとも大部分は追跡できるし、多くのWhatWGやW3Cの出版物よりも理解しやすいからです。


ボタンがフォームの場合
var myform = new FormData(getformbywhatever); myform.get("rate");
上のQuerySelectorはより良い解決策です。 しかし、この方法は、特にあなたがCSSについての手掛かりがない場合は、理解しやすいです。 さらに、入力フィールドはフォームになる可能性が非常に高いです。
チェックしていない、他の同様のソリューションがあります、繰り返して申し訳ありません


以前提案された機能の改善

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;
}

別の(明らかに古い)オプションは、 "document.nameOfTheForm.nameOfTheInput.value;"という形式を使用することです。 例: 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にはフォーム要素は含まれていません。

ここで働くフィドル: https://jsfiddle.net/Josh_Shields/23kg3tf4/1/ : https://jsfiddle.net/Josh_Shields/23kg3tf4/1/


私のために働いたものは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)が含まれます


私は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;
});

それが役に立てば幸い。


質問がされてから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
    }  
} 

<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;

var rates = document.getElementById('rates').value;

代わりにそのようなラジオボタンの値を取得することはできません

rate_value = document.getElementById('r1').value;






radio-button