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 답변

  • 좋아요

    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'))는 무조건 참이 됩니다. 그래서 자꾸 네이버로 빠지는 거에요.

    • 와 감사합니다. 대단하시네요.. 윤우섭 2020.4.6 16:18
    • 질문자님도 나중되면 다른분들 질문 해결해주는 사람이 될거에요. 제가 그럴줄은 몰랐거든요 엽토군 2020.4.6 17:04

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)