[jquery] jQuery로 라디오 옵션 검사 onload를 설정하는 방법

jQuery로 라디오 옵션 검사 onload를 설정하는 방법은 무엇입니까?

기본값이 설정되어 있지 않은지 확인한 다음 기본값을 설정해야합니다.



답변

예를 들어 다음과 같은 라디오 버튼이 있다고 가정하십시오.

<input type='radio' name='gender' value='Male'>
<input type='radio' name='gender' value='Female'>

라디오를 확인하지 않으면 “Male”onload 값을 가진 것을 확인하려고합니다.

$(function() {
    var $radios = $('input:radio[name=gender]');
    if($radios.is(':checked') === false) {
        $radios.filter('[value=Male]').prop('checked', true);
    }
});


답변

하나의 라이너는 어떻습니까?

$('input:radio[name="gender"]').filter('[value="Male"]').attr('checked', true);


답변

이로 인해 form.reset () 실패가 발생합니다.

$('input:radio[name=gender][value=Male]').attr('checked', true);

그러나 이것은 작동합니다.

$('input:radio[name=gender][value=Male]').click();


답변

JQuery에는 실제로 라디오와 체크 박스의 체크 상태를 설정하는 두 가지 방법이 있으며 HTML 마크 업에서 value 속성을 사용하는지 여부에 따라 다릅니다.

값 속성이있는 경우 :

$("[name=myRadio]").val(["myValue"]);

값 속성이없는 경우 :

$("#myRadio1").prop("checked", true);

자세한 내용은

첫 번째 경우 이름을 사용하여 전체 라디오 그룹을 지정하고 val 함수를 사용하여 선택할 라디오를 찾도록 JQuery에 지시합니다. val 함수는 1 요소 배열을 가져와 값이 일치하는 라디오를 찾고 checked = true로 설정합니다. 이름이 같은 다른 사람은 선택이 취소됩니다. 일치하는 값을 가진 라디오가 없으면 모두 선택이 취소됩니다. 이름과 값이 같은 라디오가 여러 개 있으면 마지막 라디오가 선택되고 다른 라디오는 선택 해제됩니다.

라디오에 값 속성을 사용하지 않는 경우 고유 ID를 사용하여 그룹에서 특정 라디오를 선택해야합니다. 이 경우 prop 함수를 사용하여 “checked”속성을 설정해야합니다. 많은 사람들이 확인란과 함께 value 속성을 사용하지 않기 때문에 # 2는 확인란과 라디오에 더 적합합니다. 또한 확인란의 이름이 같은 확인란은 그룹을 형성하지 않으므로 확인란을 선택할 수 있습니다 $("[name=myCheckBox").prop("checked", true);.

여기에서이 코드를 사용할 수 있습니다 : http://jsbin.com/OSULAtu/1/edit?html,output


답변

@Amc의 답변이 마음에 들었습니다. filter () 호출을 사용하지 않기 위해 표현식을 더 압축 할 수 있다는 것을 알았습니다 (@chaiko는 분명히 이것을 알았습니다). 또한 prop ()는 jQuery v1.6 +의 경우 attr ()과 비교하는 방법 입니다. 주제에 대한 공식 우수 사례는 prop ()jQuery 문서를 참조하십시오 .

@Paolo Bergantino의 답변과 동일한 입력 태그를 고려하십시오.

<input type='radio' name='gender' value='Male'>
<input type='radio' name='gender' value='Female'>

업데이트 된 one-liner는 다음과 같이 읽을 수 있습니다.

$('input:radio[name="gender"][value="Male"]').prop('checked', true);


답변

나는 당신이 그 이름이 독특하고 그룹의 모든 라디오가 같은 이름을 가지고 있다고 가정 할 수 있다고 생각합니다. 그런 다음 jQuery 지원을 다음과 같이 사용할 수 있습니다.

$("[name=gender]").val(["Male"]);

참고 : 배열 전달이 중요합니다.

조건부 버전 :

if (!$("[name=gender]:checked").length) {
    $("[name=gender]").val(["Male"]);
}


답변

당신이 정말로 역동적이기를 원하고 들어오는 데이터에 해당하는 라디오를 선택한다면, 이것은 작동합니다. 전달 된 데이터의 성별 값을 사용하거나 기본값을 사용합니다.

if(data['gender'] == ''){
 $('input:radio[name="gender"][value="Male"]').prop('checked', true);
}else{
  $('input:radio[name="gender"][value="' + data['gender'] +'"]').prop('checked', true);
};