jQuery로 확인란이 선택되어 있는지 테스트


588

확인란을 선택하면 값을 1로 가져와야합니다. 그렇지 않으면 0으로 가져와야합니다. jQuery를 사용하여 어떻게해야합니까?

$("#ans").val() 이 경우 항상 나에게 하나의 권리를 줄 것입니다.

<input type="checkbox" id="ans" value="1" />

2
.val ()은 확인 상태가 아닌 값 속성을 가져옵니다. value 속성은 무엇이든 가능하며 부울 일 필요는 없습니다.
Pablo Pazos

여전히 주변에 있다면 최신 소프트웨어에 대해 허용되는 답변을 업데이트하고 싶을 수도 있습니다. 많은 사람들이이 질문을 계속보고 있습니다.
xaxxon

답변:


1008

사용 .is(':checked')이 확인하고 그에 따라 값이 설정되어 있는지 여부를 결정합니다.

자세한 내용은 여기를 참조하십시오.


1
또한 if 절에서 $ ( "# id"). is ( "checked")를 수행하면 반환에 의해 on / off가 아닌 true 또는 false가되어 백엔드 스크립트로 보낼 수 있습니다. 원하는대로하세요
Zanoldor

1
아마도 이것은 오늘날 중요하지 않습니다. ReSharper는 " 의사 클래스 '확인 됨'은 Internet Explorer 8.0과 호환되지 않습니다 "라는 경고를 출력합니다 .
Uwe Keim

211
$("#ans").attr('checked') 

체크되어 있는지 알려줍니다. 두 번째 매개 변수 true / false를 사용하여 확인란을 선택 / 선택 취소 할 수 있습니다.

$("#ans").attr('checked', true);

의견에 따라 가능한 경우 prop대신 attr사용하십시오. 예 :

$("#ans").prop('checked')

90

그냥 사용 $(selector).is(':checked')

부울 값을 반환합니다.


56
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;

@ 삼항 삼항 구문을 사용하여 값을 설정하려면 다음과 같이하십시오. : a = ischecked? 1 : 0

21

Stefan Brinkmann의 답변은 훌륭하지만 초보자에게는 불완전합니다 (변수 할당 생략). 다시 한번 확인하기 위해:

// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;

다음과 같이 작동합니다.

 var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;

예:

var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );

경고 '아니오'

이것이 도움이된다면 Stefan Brinkmann의 답변을 찬성하십시오.



15

이전에도 동일한 문제를 발견했습니다.이 솔루션이 도움이되기를 바랍니다. 먼저, 체크 박스에 커스텀 속성을 추가하십시오 :

<input type="checkbox" id="ans" value="1" data-unchecked="0" />

가치를 얻으려면 jQuery 확장을 작성하십시오.

$.fn.realVal = function(){
    var $obj = $(this);
    var val = $obj.val();
    var type = $obj.attr('type');
    if (type && type==='checkbox') {
        var un_val = $obj.attr('data-unchecked');
        if (typeof un_val==='undefined') un_val = '';
        return $obj.prop('checked') ? val : un_val;
    } else {
        return val;
    }
};

확인란 값을 얻으려면 코드를 사용하십시오.

$('#ans').realVal();

여기서 테스트 할 수 있습니다


10
... jQuery는 "쓰기가 적을수록"라이브러리로 알려져 있기 때문에
myshadowself

JQUERY는 개발자가 적은 비용으로 더 많은 것을 할 수 있기를 원합니다. 간단한 문제는 간단한 해결책이 필요합니다
ShapCyber

예, 동의하고 적게 쓰고 더 많이하십시오. 확장을 한 번 작성하고 나머지 시간 동안 API $ (someradio) .realVal () 만 호출하면 확장을 여러 번 작성할 필요가 없습니다.
alphakevin

확장 프로그램을 한 번 작성하지 않아도 '다수의 시간'을 신경 쓰지 마십시오! Oo
Coz

8
$('input:checkbox:checked').val();        // get the value from a checked checkbox

7
<input type="checkbox" id="ans" value="1" />

Jquery : var test= $("#ans").is(':checked') true 또는 false를 반환합니다.

당신의 기능에서 :

$test =($request->get ( 'test' )== "true")? '1' : '0';


4

사용하다:

$("#ans option:selected").val()

선택하지 않으면 첫 번째 부분은 아무것도 반환하지 않습니다.
xaxxon

@Senthil는, 영업 이익은 오히려 선택된 체크 박스의 값을 얻기 위해 요구되지 않는 return 1이 선택되어 있으면 선택
옴 샨

4
function chkb(bool){
if(bool)
return 1;
return 0;
}

var statusNum=chkb($("#ans").is(':checked'));

확인란을 선택하면 statusNum은 1이되고 그렇지 않으면 0이됩니다.

편집 : 함수에 DOM을 추가 할 수도 있습니다.

function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}

var statusNum=chkb($("#ans"));

4

최근에 사용자가 버튼을 클릭했을 때 확인란의 값을 확인 해야하는 경우를 겪었습니다. 이를 수행하는 유일한 올바른 방법은 prop()속성 을 사용하는 것입니다.

var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;

이것은 내 경우에 효과가 있었을 것입니다. 어쩌면 누군가가 필요할 것입니다.

시도했지만 .attr(':checked')반환 checked했지만 부울 값과 .val()attribute 값을 반환 하려고 했습니다 value.


4

몇 가지 옵션이 있습니다 ....

 1. $("#ans").is(':checked') 
 2. $("#ans:checked")
 3. $('input:checkbox:checked'); 

이러한 모든 옵션이 true를 반환하면 값을 적절하게 설정할 수 있습니다.


첫 번째는 ( ': checked')이어야하며 그렇지 않으면 작동하지 않습니다.
Arie Livshin

2

이 시도

$('input:checkbox:checked').click(function(){
    var val=(this).val(); // it will get value from checked checkbox;
})

그렇지 않으면 false로 표시되면 플래그가 true입니다.

var flag=$('#ans').attr('checked');

다시 이것은 뺨을 만들 것입니다

$('#ans').attr('checked',true);


0

이 두 가지 방법으로 가치를 얻을 수 있습니다 (true / false)

$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");

0

먼저 값을 확인하십시오

$("#ans").find("checkbox").each(function(){
    if ($(this).prop('checked')==true){ 
    var id = $(this).val()
    }
});

그렇지 않으면 0 값을 설정하십시오


0

정수 값을 확인하려면 다음을 시도하십시오.

$("#ans:checked").length

0

이 방법으로 수행 할 수 있습니다.

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