채택완료

체크박스 최소 한 개 필수 선택

체크박스 여러 개 중 최소 하나를 필수 선택하게 하고 싶습니다.

현재 write.skin.php에 이렇게 되어 있습니다.

    <?php $wr1 = explode("|", $write['wr_1']);?>
     <label><input type=checkbox name=wr1[] value="채송화" <?=$write[wr_1]?>> 채송화</label>
     <label><input type=checkbox name=wr1[] value="해바라기" <?=$write[wr_1]?>> 해바라기</label>
     <label><input type=checkbox name=wr1[] value="민들레" <?=$write[wr_1]?>> 민들레</label>

     <label><input type=checkbox name=wr1[] value="튤립" <?=$write[wr_1]?>> 튤립</label>

다중 선택이 가능하며 출력된 만큼 view페이지에서 볼 수 있는 상태입니다. (여기까진 확인 완료)

여기서 최소 1개 이상 선택을 하지 않으면 글작성이 안되고 알림창이 뜨도록 하려는데

function fwrite_submit(f) {

  if (form.wr1.checked == false) {
   alert("종류는 하나 이상 체크해주세요.");
   return false;
  }

}

다른 팁들 참고해서 이렇게 적었는데....

체크항목 미선택시 알림창이 안 뜨고 view 페이지엔 빈칸으로 출력되네요 ㅠ

어떻게 수정해야할까요?

|

답변 1개 / 댓글 4개

채택된 답변
+20 포인트

    var flag = false; 

    $("input[name='wr1[]']").each( function () {

        if (this.checked) { 

            flag = !flag;  

            return; 

        }

    });

    if (!flag) {

        alert("종류는 하나 이상 체크해주세요.");

        return false;

    }


답변에 대한 댓글 4개

아 ㅠㅠ 근데 문제가 하나 있네요.

이렇게 하니까 다중선택이 가능하던게 적용이 안 됩니다.
여러 개를 택해도 하나 이상을 선택해달라는 알림창이 뜹니다.
무조건 항목을 하나만 선택할 수 있게 되어버리는데.... 이건 어떻게 해야할까요? ㅜㅜ
var flag = false;
$("input[name='wr1[]']").each( function () {
if (this.checked) {
flag = !flag;
return false;
}
});

if (!flag) {
alert("종류는 하나 이상 체크해주세요.");
return false;
}
와.. 속 시원하게 해결되었습니다. 감사합니다!
이 코드를 어디에 넣어야 하는지요? 감사합니다

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