jQuery 세트 라디오 버튼


134

라디오 버튼을 설정하려고합니다. 값이나 ID를 사용하여 설정하고 싶습니다.

이것이 내가 시도한 것입니다.

$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);

newcol 라디오 버튼의 ID입니다.

어쩌면 약간의 편집이 필요할 수 있습니다.

하나는 열이 있고 다른 하나는 행이있는 두 개의 라디오 상자 세트가 있습니다. 그래서 ID를 사용하지 않는 것이 중요합니다. 내 잘못이야. 그래서 예를 들어 있습니다.

<input type="radio" name="rows" class="listOfCols" 
   style="width: 50%; " value="Site"></input>

<input type="radio" name="cols" class="listOfCols" 
   style="width: 50%; "  value="Site"></input>

ID가 제거 된 상태에서 올바른 ID를 설정해야합니다.


답변:


196

선택기는 input:radio[name=cols]id가 newcol(그 변수의 값을 가진) 요소 의 자손을 찾습니다 .

대신 ID로 선택하기 때문에 대신 시도하십시오.

$('#' + newcol).prop('checked',true);

데모는 다음과 같습니다. http://jsfiddle.net/jasper/n8CdM/1/

또한 jQuery 1.6부터 속성을 변경하는 바람직한 방법은 .prop()다음과 같습니다. http://api.jquery.com/prop


5
+1 propattr. attr더 이상 사용되지 않으며 jQuery 2.0에서 더 이상 작동하지 않습니다.)
gavenkoa

87

https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery 에서 답을 찾았습니다.

기본적으로 하나의 라디오 버튼을 확인하려면 값을 배열로 전달해야합니다.

$('input:radio[name=cols]').val(['Site']);
$('input:radio[name=rows]').val(['Site']);

안녕하세요 링크에는 추천 콘텐츠가 없습니다. 왜 링크를 제거하기 위해 편집을 거부합니까? 문제와 관련된 내용은 포함되어 있지 않습니다.
Menuka Ishan

@MenukaIshan, 요점은 : 신용을 제공합니다. 링크는 web.archive.org에서 사용할 수 있으며 처음으로 작성한 사람과 내가 대답을 얻는 사람은 크레딧을 받아야합니다. 링크를 제거하지 마십시오. 원본 게시물을 보려면 링크를 복사하여 붙여 넣으십시오 (
web.archive.org

2
@Chococroc 질문의 마크 다운을 올바르게 구성하지 않았습니다. 웹 아카이브 버전을보고 올바르게 링크했습니다. 검토 후 사이트에 올바르게 연결됩니다.
Menuka Ishan


15

선택기에서 주어진 ID로 라디오 버튼의 중첩 된 요소를 가져 오는 것 같습니다. 라디오 버튼을 확인하려면 선택기에서이 라디오 버튼을 선택해야합니다.

$('input:radio[name="cols"]').attr('checked', 'checked');

마크 업에 다음 라디오 버튼이 있다고 가정합니다.

<input type="radio" name="cols" value="1" />

라디오 버튼에 ID가있는 경우 :

<input type="radio" name="cols" value="1" id="myradio" />

ID 선택기를 직접 사용할 수 있습니다.

$('#myradio').attr('checked', 'checked');

cols이름 이있는 라디오가 여러 개인 경우 $('input:radio[name="cols"]').attr('checked', 'checked');마지막 라디오 만 선택합니다. 각각에 대해 코드를 실행하지만 checked속성 을 설정할 때마다 이전에 설정된 요소가 설정 해제됩니다. 데모는 다음과 같습니다. jsfiddle.net/jasper/n8CdM/2
Jasper

@ 재스퍼, 맞습니다. ID 선택기를 사용하는 것이 좋습니다.
Darin Dimitrov

12

다음 코드를 시도 할 수 있습니다.

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

지정된대로 라디오 열 및 값에 대해 확인 된 속성을 설정합니다.


1
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.출처 : api.jquery.com/attr
Jasper

10

당신은 왜 필요합니까 'input:radio[name=cols]'. HTML을 모르지만 ID가 고유하다고 가정하면 간단하게 수행 할 수 있습니다.

$('#'+newcol).prop('checked', true);

6

이 시도:

$("#" + newcol).attr("checked", "checked");

에 문제가 있었 attr("checked", true)으므로 위의 내용을 대신 사용하는 경향이 있습니다.

또한 ID가 있으면 다른 항목을 선택할 필요가 없습니다. ID는 고유합니다.


1
소품은 이런 것들에 대해 attr보다 낫습니다
RozzA

attr은 jQuery 1.9+ Use prop에서 사라졌습니다.
Mike_Laird

네 말이 맞지만 궁극적으로 특정 상황에 따라 다릅니다. 코드가 항상 jQuery 1.6 이상에서 실행되는 경우 prop이 좋습니다. 그러나 코드가 이전 버전에서 실행될 수 있다면 솔루션이 간단하지 않습니다. 예를 들어, jQuery PickList 플러그인을 유지 관리하고 jQuery 1.4 이상을 지원하므로 prop을 사용하는 것은 옵션이 아닙니다. 이 티켓은 공개 티켓이므로 우아한 제안이 있으시면 듣고 싶습니다. 아직 연구를 할 시간이 없었습니다.
The Awnry Bear

문제는 솔루션이 이전 버전과 호환 될 수 있다고 하더라도이 경우에는 작동하지 않는다는 checked="checked"것입니다. 이제 A를 다시 선택하면 이미 checked="checked"속성이 있으며 아무것도 변경되지 않습니다. 그 B의 부작용은 여전히 ​​A가 아닌 선택 될 것입니다.
Kyborek


2

사용하면 .filter()작동하며 id, value, name에 유연합니다.

$('input[name="cols"]').filter("[value='Site']").attr('checked', true);

( 이 블로그에서 볼 수 있음 )


1
나는 이것이 똑같이 유효한 대답이라고 생각하지만 prop () 메소드를 사용해야합니다 : $ ( 'input [name = "cols"]'). filter ( "[value = 'Site']"). prop ( 'checked ', 진실);. 사용자가 "값 또는 ID"로 설정하려고합니다. 모든 라디오 옵션에 대해 id 값을 설정하지 않으려는 경우가있을 수 있으므로 이름으로 가져오고 값으로 필터링하는 것이 유용합니다.
Zac Imboden


0

간단하게 사용할 수 있습니다 :

$("input[name='cols']").click();

0

이 경우 선택한 답변이 작동합니다.

그러나 문제는 라디오 그룹 및 동적 ID를 기반으로 요소를 찾는 것에 관한 것이 었으며 대답은 표시된 라디오 버튼에 영향을 미치지 않을 수 있습니다.

이 줄은 화면에 변경 사항을 표시하면서 요청한 내용을 정확하게 선택합니다.

$('input:radio[name=cols][id='+ newcol +']').click();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.