테스트 사이트 - 개발 중인 베타 버전입니다

체크박스 한개이상 체크 채택완료

망이망소이 7년 전 조회 5,964

input checkbox를 전체선택하거나 한개이상 체크하게 하는 소스입니다.

</p>

<p><script>

//체크박스 전체 선택,

function checkAll () {

    var obj = document.getElementsByName("no[]");

    if (obj.length > 0){

        for( var i=0; i< obj.length; i++) {

            if (obj[i].checked == false){

                obj[i].checked = true;

            }else{

                obj[i].checked = false;

            }

        }

    }

}</p>

<p>// 체크박스 체크 validate (체크박스 유효성 검증)

function chkchk (form){ 

    var arr_form = document.getElementsByName('no[]'); 

    var num = 0; </p>

<p>    for(var i=0; i<arr_form.length; i++){ 

        if(arr_form[i].checked){ 

            num++; 

        } 

    } 

    if(!num){ 

        alert('하나 이상 선택해주시기 바랍니다'); 

        return false; 

    } 

} 

</script> </p>

<p>

<body>

<button type="button" onclick="checkAll();">전체선택하기</button> 

<form name="TEST" method="POST" action="" onsubmit="return chkchk(this);">

1 : <input type="checkbox" id="chk_chg" name="no[]" value="1">

2 : <input type="checkbox" id="chk_chg" name="no[]" value="2">

3 : <input type="checkbox" id="chk_chg" name="no[]" value="3">

4 : <input type="checkbox" id="chk_chg" name="no[]" value="4">

5 : <input type="checkbox" id="chk_chg" name="no[]" value="5">

<button>전송</button>

</form></p>

<p></body></p>

<p>

 

[질문1]

name값이 다를경우의 처리는 어떻게 해야 할까요? 예를들어

1 : <input type="checkbox" id="chk_chg" name="no1" value="1">
2 : <input type="checkbox" id="chk_chg" name="no2" value="2">
3 : <input type="checkbox" id="chk_chg" name="no3" value="3">
4 : <input type="checkbox" id="chk_chg" name="no4" value="4">
5 : <input type="checkbox" id="chk_chg" name="no5" value="5">

 

[질문2]

스크립트에서 체크시 name말고 id로 체크하기 위해서

document.getElementsById로 바꿨는데 작동이 안되더라구요.

id값으로 

처리하고자 할 경우 어느부분을 더 수정해줘야 할까요?

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

답변 1개

채택된 답변
+20 포인트
P
7년 전

id값은 같아서는 안됩니다.

class명을 같게 주시고 getElementsByClassName을 사용하세요.

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

망이망소이
7년 전
덕분에 해결했습니다 ^^

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

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

로그인