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);
};