jQuery는 선택한 라디오 버튼의 가치를 얻습니다.


557

문제는 간단합니다. 사용자가 라디오 그룹에서 라디오 버튼을 선택했는지 확인해야합니다. 그룹의 모든 라디오 버튼은 동일한 ID를 공유합니다.

문제는 양식 생성 방법을 제어 할 수 없다는 것입니다. 다음은 라디오 버튼 제어 코드의 모양에 대한 샘플 코드입니다.

<input type="radio" name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >

또한 라디오 버튼을 선택할 때 "체크 된"속성을 텍스트에 체크 한 텍스트에만 추가하지 않습니다 (값없이 체크 된 속성 만 추측합니다) . 아래는 선택된 라디오 컨트롤의 모습입니다

<input type="radio" checked name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >

선택한 라디오 버튼의 가치를 얻는 데 도움이되는 jQuery 코드를 도와 줄 사람이 있습니까?


71
동일한 ID를 가진 여러 요소가 있습니까? 그건 ... 끔찍 해요
Matt Ball


모두 같은 ID를 가진 사람들과 어떻게 작동합니까? ID로 평가할 때 첫 번째 일치 요소에서 평가가 중지되지 않습니까? 각기 다른 시간에 동적 요소가 표시되는 목적은 무엇입니까?
Mark Carpenter Jr

1
참고로 ASP.NET MVC의 @ Html.RadioButtonFor 도우미는 동일한 ID를 가진 모든 라디오 버튼을 생성합니다. 죄송합니다.
Triynko

답변:


1119

그냥 사용하십시오.

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

너무 쉽습니다.


25
따옴표를 잊지 마십시오 : $ ( "input [name = '"+ fieldName + "'] : checked"). val ();
Atara

4
@ 구라 프라 사드 라오 (Guraprasad Rao) : 적절한 코드입니다.이 경우에는 따옴표가 필요하지 않습니다. 사용해보십시오.
Stefan

2
HTML에서 지정한 값이 아닌 "on"을 반환하는 이유는 무엇입니까? 편집 : 내 가치에 따옴표가 없기 때문에.
Vincent

3
$ ( 'input [name = "name_of_your_radiobutton"] : checked'). val ();
Sameera Prasad Jayasinghe

1
버튼을 선택하지 않으면이 버튼 만 반환됩니다 null. 이는 논리적이지만 호출을 ""통해 기본값으로 사용하는 데 익숙하지 않을 때 혼동 될 수 있습니다 .val().
xji

313

먼저 동일한 ID를 가진 여러 요소를 가질 수 없습니다. 양식 작성 방법을 제어 할 수는 없지만 라디오에서 모든 ID를 제거하거나 고유하게 만드는 방법을 시도하십시오.

선택한 라디오 버튼의 값을 얻으려면 :checked필터를 사용하여 이름별로 선택하십시오 .

var selectedVal = "";
var selected = $("input[type='radio'][name='s_2_1_6_0']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}

편집하다

따라서 이름을 제어 할 수 없습니다. 이 경우이 라디오 버튼을 div 안에 모두라는 이름으로 말한 radioDiv다음 선택기를 약간 수정하십시오.

var selectedVal = "";
var selected = $("#radioDiv input[type='radio']:checked");
if (selected.length > 0) {
    selectedVal = selected.val();
}

75

선택된 단일 선택 단추 값을 얻는 가장 간단한 방법은 다음과 같습니다.

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

선택기 사이에 공간이 없어야합니다.


가장 간단한 옵션입니다.
andreszs

44
$("#radioID") // select the radio by its id
    .change(function(){ // bind a function to the change event
        if( $(this).is(":checked") ){ // check if the radio is checked
            var val = $(this).val(); // retrieve the value
        }
    });

이것을 DOM ready 함수 ( $(function(){...});또는 $(document).ready(function(){...});)로 묶어야 합니다.


난 항상이 코드를 빈 값을 얻고있다 .. 나는이 값은 단지 텍스트를 확인 점검과 함께 (우리는 속성 고려할 수 있을지는 확실하지 않다) 내가 재산이 없다는 사실에 기인한다 생각
user1114212

ID로 라디오 버튼을 선택하고 있습니까? radioIDID로 변경 했습니까 ?
Purag

37
  1. 코드에서 jQuery는 이름이 q12_3 인 입력의 첫 번째 인스턴스를 찾습니다.이 경우 값은 1입니다 :checked. 이름이 q12_3 인 입력을 원합니다 .
$(function(){
    $("#submit").click(function() {     
        alert($("input[name=q12_3]:checked").val());
    });
});
  1. 위 코드는를 사용하는 것과 다릅니다 .is(":checked"). jQuery의 is() 함수는 요소가 아닌 부울 (true 또는 false)을 반환합니다.

28
<input type="radio" class="radioBtnClass" name="numbers" value="1" />1<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="2" />2<br/>
<input type="radio" class="radioBtnClass" name="numbers" value="3" />3<br/>

확인 된 라디오 버튼 값이 반환됩니다.

if($("input[type='radio'].radioBtnClass").is(':checked')) {
    var card_type = $("input[type='radio'].radioBtnClass:checked").val();
    alert(card_type);
}

24
 $("input[name='gender']:checked").val()

중첩 속성

$("input[name='lead[gender]']:checked").val()

이름에 단일 괄호를 잊지 마십시오


20

모든 라디오를 받으십시오 :

var radios = $("input[type='radio']");

확인한 것을 얻기 위해 필터

radios.filter(":checked");

또는

라디오 버튼 값을 찾는 또 다른 방법

var RadeoButtonStatusCheck = $('form input[type=radio]:checked').val();

3
나는 $('[name=your_inputs_names]:checked').val()그들이 항상 같은 이름을 가지고 있기 때문에 사용합니다
vladkras

4
잘 사용.filter()
마크 카펜터 주니어

2
그건 .filter(). 이 답변이 맨 위에있을 수 있기를 바랍니다.
Yusril Maulidan Raji

16

선택한 라디오 버튼의 값을 얻으려면 RadioButtonName 및 RadioButton을 포함하는 양식 ID를 사용하십시오.

$('input[name=radioName]:checked', '#myForm').val()

OR 만

$('form input[type=radio]:checked').val();

12

잘 작동하는 예를 확인하십시오.

<div class="dtl_radio">
  Metal purity : 
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="92" checked="">
    92 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="75">
    75 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="58.5">
    58.5 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="95">
    95 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="59">
    59 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="76">
    76 %
  </label>
    <label>
    <input type="radio" name="purityradio" class="gold_color" value="93">
    93 %
  </label>
   </div>

var check_value = $('.gold_color:checked').val();


12

각기 다른 섹션과 관련된 라디오 그룹 모음에 대한 작업 예는 아래를 참조하십시오. 네이밍 체계는 중요하지만 이상적으로는 (특히 여기와 같은 섹션에있을 때) 입력에 일관된 명명 체계를 시도하고 사용해야합니다.

$('#submit').click(function(){
  var section = $('input:radio[name="sec_num"]:checked').val();
  var question = $('input:radio[name="qst_num"]:checked').val();
  
  var selectedVal = checkVal(section, question);
  $('#show_val_div').text(selectedVal);
  $('#show_val_div').show();
});

function checkVal(section, question) {
  var value = $('input:radio[name="sec'+section+'_r'+question+'"]:checked').val() || "Selection Not Made";
  return value;
}
* { margin: 0; }
div { margin-bottom: 20px; padding: 10px; }
h5, label { display: inline-block; }
.small { font-size: 12px; }
.hide { display: none; }
#formDiv { padding: 10px; border: 1px solid black; }
.center { display:block; margin: 0 auto; text-align:center; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="center">
  <div>
    <h4>Section 1</h4>

    <h5>First question text</h5>
    <label class="small"><input type="radio" name="sec1_r1" value="(1:1) YES"> YES</label>
    <label class="small"><input type="radio" name="sec1_r1" value="(1:1) NO"> NO</label>
    <br/>
    <h5>Second question text</h5>
    <label class="small"><input type="radio" name="sec1_r2" value="(1:2) YES"> YES</label>
    <label class="small"><input type="radio" name="sec1_r2" value="(1:2) NO"> NO</label>
    <br/>
    <h5>Third Question</h5>
    <label class="small"><input type="radio" name="sec1_r3" value="(1:3) YES"> YES</label>
    <label class="small"><input type="radio" name="sec1_r3" value="(1:3) NO"> NO</label>
  </div>

  <div>
    <h4>Section 2</h4>
    <h5>First question text</h5>
    <label class="small"><input type="radio" name="sec2_r1" value="(2:1) YES"> YES</label>
    <label class="small"><input type="radio" name="sec2_r1" value="(2:1) NO"> NO</label>
    <br/>
    <h5>Second question text</h5>
    <label class="small"><input type="radio" name="sec2_r2" value="(2:2) YES"> YES</label>
    <label class="small"><input type="radio" name="sec2_r2" value="(2:2) NO"> NO</label>
    <br/>
    <h5>Third Question</h5>
    <label class="small"><input type="radio" name="sec2_r3" value="(2:3) YES"> YES</label>
    <label class="small"><input type="radio" name="sec2_r3" value="(2:3) NO"> NO</label>
  </div>

  <div>
    <h4>Section 3</h4>
    <h5>First question text</h5>
    <label class="small"><input type="radio" name="sec3_r1" value="(3:1) YES"> YES</label>
    <label class="small"><input type="radio" name="sec3_r1" value="(3:1) NO"> NO</label>
    <br/>
    <h5>Second question text</h5>
    <label class="small"><input type="radio" name="sec3_r2" value="(3:2) YES"> YES</label>
    <label class="small"><input type="radio" name="sec3_r2" value="(3:2) NO"> NO</label>
    <br/>
    <h5>Third Question</h5>
    <label class="small"><input type="radio" name="sec3_r3" value="(3:3) YES"> YES</label>
    <label class="small"><input type="radio" name="sec3_r3" value="(3:3) NO"> NO</label>
  </div>
</div>


<div id="formDiv" class="center">
  <form target="#show_val_div" method="post">
    <p>Choose Section Number</p>
    <label class="small">
      <input type="radio" name="sec_num" value="1"> 1</label>
    <label class="small">
      <input type="radio" name="sec_num" value="2"> 2</label>
    <label class="small">
      <input type="radio" name="sec_num" value="3"> 3</label>
    <br/><br/>
    
    <p>Choose Question Number</p>
    <label class="small">
      <input type="radio" name="qst_num" value="1"> 1</label>
    <label class="small">
      <input type="radio" name="qst_num" value="2"> 2</label>
    <label class="small">
      <input type="radio" name="qst_num" value="3"> 3</label>
    <br/><br/>
    
    <input id="submit" type="submit" value="Show Value">
    
  </form>
  <br/>
  <p id="show_val_div"></p>
</div>
<br/><br/><br/>


12

아래 코드 사용

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

결과에 "Male"또는 "Female"이 표시 될 수 있도록 value 속성을 정의해야합니다.

<div id='div_container'>
<input type="radio" name="Gender" value="Male" /> Male <br />
<input type="radio" name="Gender" value="Female" /> Female
</div>

7

예를 들어 이것을보십시오

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1  /jquery.min.js"></script>
<form id="myForm">
<input type="radio" name="radio" value="first"/> 1 <br/>
<input type="radio" name="radio" value="second"/> 2 <br/>
</form>



<script>
$(document).ready(function () {
    $('#myForm').on('click', function () {
        var value = $("[name=radio]:checked").val();

        alert(value);
    })
});
</script>

7

이름으로 만

$(function () {
    $('input[name="EventType"]:radio').change(function () {
        alert($("input[name='EventType']:checked").val());
    });
});

6
if (!$("#InvCopyRadio").prop("checked") && $("#InvCopyRadio").prop("checked"))
    // do something

1
undefined특정 값을 알아야 할 때 문자열 비교를 귀찮게하는 이유는 무엇 checked입니까? jQuery가 필요하지 않습니다.
데빈 버크

질문에서 하나의 라디오 버튼을 처음부터 확인하라는 정보가 표시되지 않습니다. 대부분의 경우 라디오 버튼이있는 것과 같습니다. 따라서 우리가 그것을 확인하고 아무것도 선택하지 않은 경우 attr ( "checked")은 null 객체를 반환합니다.
Tadej Magajna

맞습니다.하지만 방금 null을 반환해도 오류가 발생하지 않으므로 비교 "undefined"가 필요하지 않습니다.
Devin Burke

5

javascript / jQuery에서 ID를 사용하여 선택한 라디오 버튼의 값을 얻을 수 있습니다.

$("#InvCopyRadio:checked").val();

이것이 도움이되기를 바랍니다.


매우 효율적인 !!
MHJ

4

이 간단한 주제를 설명하는 가장 좋은 방법은 간단한 예제와 참조 링크를 제공하는 것입니다.

다음 예제에는 두 개의 라디오 버튼이 있습니다. 사용자가 라디오 버튼을 선택하면 선택한 라디오 버튼 값이 경고 상자에 표시됩니다.

HTML :

<form id="Demo">
<input type="radio" name="Gender" value="Male" /> Male <br />
<input type="radio" name="Gender" value="Female" /> Female<br />
<input type="radio" name="Gender" value="others" /> others <br />
</form>

jquery :-

 $(document).ready(function(){
        $('#Demo input').on('change', function() {
            alert($('input[name="Gender"]:checked', '#Demo').val());
        });
    });

4

나는 이것에 늦게 참여하고 있다는 것을 안다. 그러나 그것이 필요하다는 것을 언급 할 가치가 있습니다.

<label class="custom-control-label" for="myRadioBtnName">Personal Radio Button</label>

그런 다음 js에서 이것을 확인했습니다. 그것은 같을 수 있습니다

$(document).ready(function () { 

$("#MyRadioBtnOuterDiv").click(function(){
    var radioValue = $("input[name=myRadioButtonNameAttr]:checked").val();
    if(radioValue === "myRadioBtnName"){
        $('#showMyRadioArea').show();
    }else if(radioValue === "yourRadioBtnName"){
        $('#showYourRadioArea').show();
    }
});
});

`


3
<div id="subscriptions">
 Company Suscription: <input type="radio" name="subsrad" value="1">
 Customer Subscription:<input type="radio" name="subsrad" value="2">
 Manully Set:<input type="radio" name="subsrad" value="MANUAL">
 NO Subscription:<input type="radio" name="subsrad" value="0">
 </div>

값 설정 / div id를 통해 변경 된 것과 같이 경고를 위해 jquery를 처리하십시오.

$("#subscriptions input") // select the radio by its id
    .on('change', function(){ // bind a function to the change event
    alert($('input[name="subsrad"]:checked', '#subscriptions').val());
            });

너무 쉽다 .... :-}


부모 ID를 사용하여이 작업을 수행하는 간단한 방법은 다음과 같습니다 .... $ ( "# subscriptions"). on ( "change", function () {var selection = $ (this) .find ( "input : checked") .val (); alert (selection);});
MistyDawn

3

이해하는 또 다른 쉬운 방법은 ... 작동합니다 :

HTML 코드 :

 <input type="radio" name="active_status" class="active_status" value="Hold">Hold 
 <input type="radio" name="active_status" class="active_status" value="Cancel">Cancel 
 <input type="radio" name="active_status" class="active_status" value="Suspend">Suspend

jquery 코드 :

$(document).on("click", ".active_status", function () {
 var a = $('input[name=active_status]:checked').val();  
 (OR)   
 var a = $('.active_status:checked').val();
 alert(a);
});

3

다중 그룹 라디오 버튼 은밀한 값 배열

var arr = [];
    function r(n) {


        var section = $('input:radio[name="' + n + '"]:checked').val();
        arr[n] = section;

        console.log(arr)
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" onchange="r('b1')" class="radioID" name="b1" value="1">1
<input type="radio" onchange="r('b1')"  class="radioID" name="b1" value="2"  >2
<input type="radio" onchange="r('b1')"   class="radioID" name="b1" value="3">3

<br>

<input type="radio" onchange="r('b2')" class="radioID2" name="b2" value="4">4
<input type="radio" onchange="r('b2')"  class="radioID2" name="b2" value="5"  >5
<input type="radio" onchange="r('b2')"   class="radioID2" name="b2" value="6">6


더 많은 사람들이 이해할 수 있도록 설명을 추가해 주시겠습니까?
Shanteshwar Inde

2

나는 자바 스크립트 사람이 아니지만이 문제를 검색하기 위해 여기에서 찾았습니다. 누가 그것을 구글에서 찾아 여기에 도움이되기를 바랍니다. 따라서 라디오 버튼 목록이 있다면 문제가됩니다.

<div class="list">
    <input type="radio" name="b1" value="1">
    <input type="radio" name="b2" value="2" checked="checked">
    <input type="radio" name="b3" value="3">
</div>

이 선택기로 선택한 항목을 찾을 수 있습니다.

$('.list input[type="radio"]:checked:first').val();

선택된 요소가 없어도 여전히 정의되지 않은 오류가 발생하지 않습니다. 따라서 요소 값을 가져 오기 전에 추가 if 문을 작성할 필요가 없습니다.

다음은 매우 기본적인 jsfiddle 예제 입니다.


1
무선 입력에 name 속성을 잘못 사용했습니다. 그룹의 단일 값만 허용하려면 그룹의 단일 선택 단추 이름이 동일해야합니다. 이렇게하면 확인란 내에서 작동하여 그룹 내에서 단일 선택 대신 여러 선택을 수행 할 수 있습니다.
MistyDawn

@MistyDawn 당신 말이 맞아요, 어떻게 작성했는지 기억조차 못합니다. 아마도 버그를 수정 한 것일 것입니다.
Yusuf Uzun

2

다음은 2 개의 라디오 버튼, 즉 rd1과 Radio1입니다.

<input type="radio" name="rd" id="rd1" />
<input type="radio" name="rd" id="Radio1" /> 

개별 is ( ": checked") 속성을 확인하여 확인 된 라디오 버튼을 확인하는 가장 간단한 방법

if ($("#rd1").is(":checked")) {
      alert("rd1 checked");
   }
 else {
      alert("rd1 not checked");
   }

이것은 매우 강력한 솔루션이 아닙니다. 포함 된 div를 가진 다음 그 아래의 모든 라디오를보고 체크 된 것을 선택하는 것이 좋습니다. 특정 이름의 모든 라디오를 확인한 다음 확인 된 라디오를 찾을 수도 있습니다. 이렇게하면 버튼을 추가 할 때마다 코드를 변경하지 않아도됩니다.
Richard Duerr

페이지에 2 개 이상의 라디오 입력이있는 경우 매우 혼동 될 수 있으며 모든 단일 라디오에 ID를 할당하면 시간이 많이 걸립니다. 이 방법은 일반적으로 좋은 방법으로 간주되지 않습니다.
MistyDawn

2

심지어 input다른 답변에 의해 제안 할 필요가 없습니다. 다음 코드도 사용할 수 있습니다.

var variable_name = $("[name='radio_name']:checked").val();

이것은 본질적으로 5 년 전의이 답변 과 동일하며 input불필요한 따옴표가 없고 불필요한 따옴표가 있습니다.
Heretic Monkey

이러한 인용문은 불필요하지 않으며 위의 답변을 게시 한 이유는 사람들에게 입력이 필요하지 않다는 사실을 알리는 것입니다.
shivamag00

그런 다음 "다음 코드 사용"명령을 사용하는 대신 이러한 이유를 언급하도록 질문을 편집 하는 것이 좋습니다. 따옴표가 필요하다고 말하는 출처를 참조 할 수도 있습니다.
Heretic Monkey

@HereticMonkey 편집 완료 ... 감사합니다 :)
shivamag00

1
    <input type="radio" name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >

$(function() {
      $("#submit").click(function() {
        alert($('input[name=s_2_1_6_0]:checked').val());
      });
    });`

1
HTML Code
<input id="is_verified" class="check" name="is_verified" type="radio" value="1"/>
<input id="is_verified" class="check" name="is_verified" type="radio" checked="checked" value="0"/>
<input id="submit" name="submit" type="submit" value="Save" />

Javascript Code
$("input[type='radio'].check").click(function() {
    if($(this).is(':checked')) {
        if ($(this).val() == 1) {
            $("#submit").val("Verified & Save");
        }else{
            $("#submit").val("Save");
        }
    }
});

1

별개의 이름을 모르거나 모든 라디오 입력을 양식으로 확인하려는 경우 전역 var를 사용하여 각 라디오 그룹의 값을 한 번만 확인할 수 있습니다.

        var radio_name = "";
        $("form).find(":radio").each(function(){
            if (!radio_name || radio_name != $(this).attr('name')) {
                radio_name = $(this).attr('name');
                var val = $('input[name="'+radio_name+'"]:checked').val();
                if (!val) alert($('input[name="'+radio_name+'"]:checked').val());
            }
        });`
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.