채택완료

글쓰기창에서 스크립트 작동이 안됩니다ㅠㅠ

Copy
<div class="form-group">
    <label class="col-sm-2 control-label-w" for="wr_1">선택<strong class="sound_only">필수</strong></label>
    <div class="col-sm-10">
        <div class="input-group" id="input_chk">

                <input type="text" name="wr_1" value="<?php echo $write['wr_1']; ?>" id="wr_1" required class="form-control input-sm" size="50" maxlength="255" ><br>
                <input type="checkbox" name="input" class="iput" value="A"> A
                <input type="checkbox" name="input" class="iput" value="B"> B
                <input type="checkbox" name="input" class="iput" value="C"> C
                <input type="checkbox" name="input" class="iput" value="D"> D
                <input type="checkbox" name="input" class="iput" value="E"> E
        </div>
    </div>
</div>
<script>
var cb = document.querySelectorAll('.iput');
var ip = document.getElementById('wr_1');
var val = [];
for(var i of cb){
i.addEventListener('change',(e)=>{
var cind = val.indexOf(e.target.name);
if(cind === -1){
val.push(e.target.name)
}else{
val.splice(cind,1)
}
ip.value = val.join(" | ")
})
}
</script>

체크박스의 체크한 밸류값을 인풋 텍스트에 넣으려고 저렇게 했습니다.

분명 https://stackoverflow.com/questions/51670315/get-names-of-checkbox-inside-input-field-via-js

에서 작동하는것을 확인하고 넣은 코드인데 안됩니다. 이유가 뭘까요?

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
Copy
stackoverflow와 코드가 다르잖아요

저기서는 name이 E33, E34 처럼 각각인데 여기는 name="input"으로 모두 같게 만들었잖습니까?

 

val.splice(cind,1) <---이건 val에 값이 들어있으면 지워라는 것이니 한번은 넣고 한번은 지우고 

하게 되니 input이라는 단어가 들어갔다가 지워졌다가 하게 되는 것이죠

 

그리고 form에서 name을 동잏란 이름으로 1개이상 만들어서는 안됩니다(이 때는 배열형식으로 사용)

답변에 대한 댓글 1개

감사합니다 프로그램 까막눈이 소스보고 베끼다 뭘 몰랐어요 가르침 감사드립니다^^

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