글쓰기창에서 스크립트 작동이 안됩니다ㅠㅠ
본문
<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
stackoverflow와 코드가 다르잖아요
저기서는 name이 E33, E34 처럼 각각인데 여기는 name="input"으로 모두 같게 만들었잖습니까?
val.splice(cind,1) <---이건 val에 값이 들어있으면 지워라는 것이니 한번은 넣고 한번은 지우고
하게 되니 input이라는 단어가 들어갔다가 지워졌다가 하게 되는 것이죠
그리고 form에서 name을 동잏란 이름으로 1개이상 만들어서는 안됩니다(이 때는 배열형식으로 사용)
!-->
답변을 작성하시기 전에 로그인 해주세요.