라디오 그룹에서 선택한 라디오를 값으로 설정


153

왜이 문제로 어려움을 겪고 있습니까?

나는 가치가있다 : 5

값이 5 인 "mygroup"그룹의 라디오 버튼을 어떻게 확인합니까?

$("input[name=mygroup]").val(5); // doesn't work?

답변:


351

속성 선택기 의 도움으로 해당 값으로 입력 요소를 선택할 수 있습니다. 그런 다음 다음을 사용하여 속성을 명시 적으로 설정해야합니다 .attr.

var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');

jQuery 1.6부터는 .prop부울 값으로 메소드를 사용할 수도 있습니다 (이는 선호되는 메소드 여야 함).

$("input[name=mygroup][value=" + value + "]").prop('checked', true);

먼저 하나의 단일 선택 단추 그룹 아래의 단일 선택 단추에서 점검 된 속성을 제거해야합니다. 그러면 해당 단일 선택 단추 그룹의 단일 선택 단추 중 하나에 점검 된 특성 / 속성을 추가 할 수 있습니다.

단일 라디오 버튼 그룹의 모든 라디오 버튼에서 확인 된 속성을 제거하는 코드-

$('[name="radioSelectionName"]').removeAttr('checked');

.prop ( 'checked', true)가 더 낫거나 .is ()
bladefist

3
@bladefist : .is여기에 도움이되지 않지만 동의합니다 .prop. 당시에는 사용할 수 없었습니다.;) 내 답변을 업데이트합니다. 감사!
Felix Kling

4
라디오 버튼의 값에 소수점이 있으면 값을 따옴표로 묶어야합니다.
Robert

1
@Robert : 그렇습니다. 로부터 문서 : "인용 부호가없는 하나의 단어 나 인용 된 문자열 중 하나가 될 수 있습니다."
Felix Kling

5
조나단의 대답을보십시오. jQuery 문서는 .val()라디오 또는 확인란 그룹의 값 설정 을 지원 하는 것을 보여줍니다 . 이 답변은 기술적으로 작동하지만 원형 교차로이며 읽기 쉽고 기억하기 쉽습니다.
jinglesthula 2016 년

144

라디오와 확인란을 확인하는 더 좋은 방법이 있습니다. 원시 값 대신 값 배열을 val 메소드 에 전달해야 합니다.

참고 : 단순히 배열 안에 있지 않고 자체적으로 값을 전달하면 "mygroup"의 모든 값이 값으로 설정됩니다.

$("input[name=mygroup]").val([5]);

작동 방법을 설명하는 jQuery 문서는 다음과 같습니다. http://api.jquery.com/val/#val-value

그리고 .val([...])또한 같은 폼 요소와 함께 작동 <input type="checkbox">, <input type="radio"><option>(A)의 내부에요 <select>.

배열 의 요소 중 하나와 일치하는 값을 가진 입력 및 옵션 은 선택되거나 선택되며, 배열의 요소 중 하나와 일치하지 않는 값을 가진 옵션은 선택되지 않거나 선택되지 않습니다.

이 작업을 보여주는 바이올린 : https://jsfiddle.net/92nekvp3/


받아 들여진 대답 (잘) jQuery를 1.0으로 (아래로 스크롤) 문서의 마지막 예 참조 : api.jquery.com/val은 여기 복사 : jsfiddle.net/JoePC/w1f9ykso
JoePC을

이것은 모든 입력 값을 설정하는 훌륭하고 일관된 방법입니다. 그것에 대해 배우는 데 6 년이 걸렸습니다.
Jeff Lowery

1
그룹의 모든 내 값이 값을 확인하는 대신 전달 된 값으로 설정되는 이유를 알아 내려고 꽤 오랜 시간을 보냈습니다. 배열 내부가 아닌 자체적으로 값을 전달한 것으로 나타났습니다.
OXiGEN


8
$("input[name='mygroup'][value='5']").attr("checked", true);

7

위에서 언급 한 것처럼 속성 값을 변경하면 change이벤트가 트리거되지 않으므로 어떤 이유로 든 필요한 경우 이벤트를 트리거 할 수 있습니다

$('input[name=video_radio][value="' + r.data.video_radio + '"]')
       .prop('checked', true)
       .trigger('change');


1

또는 값 속성을 쓸 수 있습니다.

$(':radio[value=<yourvalue>]').attr('checked',true);

이것은 나를 위해 작동합니다.


0
var key = "Name_radio";
var val = "value_radio";
var rdo = $('*[name="' + key + '"]');
if (rdo.attr('type') == "radio") {
 $.each(rdo, function (keyT, valT){
   if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null))

   {
     $('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true);
   }
  })
}

4
답변에서 코드의 기능을 설명해 주시겠습니까? 적어도 한 문장 정도 솔루션이 어떻게 해결되는지. 감사합니다.
Alex

0

순수한 JavaScript 버전 :

document.querySelector('input[name="myradio"][value="5"]').checked = true;

-1
$('input[name="mygroup"]').val([5])

1
솔루션이 이미 제공 한 다른 솔루션과 다른 점을 설명 할 수 있습니까?
Giovani Vercauteren

@ Giovani Vercauteren, 우리는 이름을 문자열로 제공해야합니다. 그래서 mygroup을 코드에서 문자열로 제공합니다.
Anjitha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.