라디오 버튼의 경우 똑같은 이름으로 여러개가 있는 경우 이는 자동으로 배열로 처리됩니다.
따라서 document.form.comm_stat_flag 는 이미 배열로 되어 있는 상태이고 배열.value 라는 것은 없기 때문에 undifind 가 나오게 되는겁니다.
그래서 배열로 접근을 하셔야 하는데 그 방법은 이미 아시겠지만 document.form.comm_stat_flag[0] 이렇게 접근을 하셔야 하고
comm_stat_flag 가 두개가 있기때문에 document.form.comm_stat_flag[1] 까지 유효한 오브젝트가 되는겁니다.
자바스크립트에서 배열의 시작은 0 이기 때문에 2개면 0,1 이렇게 두개가 되는거죠
따라서 document.form.comm_stat_flag[0].value 이렇게 접근을 하셔야 value 값을 참조하실 수 있고, 라이오버튼의 체크여부는 document.form.comm_stat_flag[0].checked 값으로 참조하실 수 있습니다.
예로 라디오 버튼 하나라도 체크했는지 여부를 알아보는 함수를 만들어보겠습니다.
<script>
function checkRadioButton(objName){
var radioObj = document.all(objName);
var isChecked;
if(radioObj.length == null){ // 라디오버튼이 같은 name 으로 하나밖에 없다면
isChecked = radioObj.checked;
}else{ // 라디오 버튼이 같은 name 으로 여러개 있다면
for(i=0; i<radioObj.length; i++){
if(radioObj[i].checked){
isChecked = true;
break;
}
}
}
if(isChecked)
alert('체크된거있음');
else
alert('체크된거없음');
}
</script>
<form name=form>
결혼여부
<input type="radio" name="comm_stat_flag" value="10">기혼
<input type="radio" name="comm_stat_flag" value="20">미혼
<input type=button value="라디오버튼 체크여부확인" onClick="checkRadioButton('comm_stat_flag')">
</form>
Web Program/Html Lecture
Radio button value 값을 보려면?
반응형
지식iN > 컴퓨터, 통신 > 프로그래밍 > 자바스크립트
반응형