jQuery로 input-radio 체크 여부 알아내기
조회수 525회
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<input type="radio" name="radio12" id="radio1">
<input type="radio" name="radio12" id="radio2">
<button type="button" id="btn1">asd</button>
<script type="text/javascript">
$('#btn1').on('click',
function() {
if($('input[id=radio1]:checked')){
window.location.replace('https://www.naver.com/');
console.log("라디오1");
}
else if($('input[id=radio2]:checked')){
window.location.replace('https://www.yahoo.com/');
console.log("라디오2");
}
else {
console.log("recontext");
}
}
);
</script>
</body>
</html>
첫번째를 체크하고 버튼을 눌렀을경우 네이버로 가는데 두번째 체크하고 버튼을 눌르면 네이버로 가는데 해결법을 몰르겠습니다. ㅠㅠ
1 답변
-
물어보신 것: 원하시는 것은
.is(':checked')
입니다. 강좌 읽기 / 데모 보기if ($('input[id=radio1]').is(':checked')) { window.open('https://www.naver.com/'); console.log("라디오1"); }
안 물어보신 것: 주신 코드의 맥락에서, 2번 라디오가 체크된 경우
$('input[id=radio1]:checked')
는 길이가 0인 제이쿼리 DOM 목록이 됩니다. 근데 얘가 길이가 없지 존재가 없는건 아니거든요. 따라서if ($('input[id=radio1]:checked'))
는 무조건 참이 됩니다. 그래서 자꾸 네이버로 빠지는 거에요.
댓글 입력