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.