묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[에러] checkbox 공부중... 에러나는데여..왜 그러는지..
2002.05.08 22:37
책 보고 checkbox 해보고 있는데여..
책에있는 고대로 쓴거 같은데...에러가 나네여~~~ 이상-_-함~~~
http://khai.klsg.org/khai/5-12.html
이며~~
소스는
checkbox.html
####################################### 소-_-스 시작 #######################################
<html>
<head>
<script language="javascirpt">
<!--
function checkit(form)
{
var str="";
for(var i=1;i<=5;i++)
{
if(eval("form.obj" + i ".checked") == true)
{
str += i + "번재 항목을 선택하셨습니다!. 선택하신 항목의 값은 " + eval("form.obj" + i + ".value") + " 입니다.n";
}
}
alert(str);
}
//-->
</script>
</head>
<body>
<font size="2">
<form name="mresearch">
<b>아래의 항목중 하나를 선택하세요~!</b><p>
<input type="checkbox" name="obj1" value="1101">첫번째 항목<br>
<input type="checkbox" name="obj2" value="1102">두번째 항목<br>
<input type="checkbox" name="obj3" value="1103">세번째 항목<br>
<input type="checkbox" name="obj4" value="1104">네번째 항목<br>
<input type="checkbox" name="obj5" value="1105">다섯번째 항목<p>
<input type="button" value="결과확인" onclick="checkit(this.form)">
</form>
</font>
</body>
</html>
####################################### 소-_-스-_-끝 #######################################
어디서 에러가 나는지... ㅠ.ㅠ
ㅇ ㅏ 그리구여~~ 이 부분에서
<script language="javascirpt">
<!--
function checkit(form)
{
var str="";
for(var i=1;i<=5;i++)
{
if(eval("form.obj" + i ".checked") == true)
{
str += i + "번재 항목을 선택하셨습니다!. 선택하신 항목의 값은 " + eval("form.obj" + i + ".value") + " 입니다.n";
}
}
alert(str);
}
//-->
</script>
어케 돌아가는진 알겠는데여~~~
if(eval~~~~ 이부분에서 eval 이란것이 뭔지 궁금합니다.
답변 올려 주시는님엑 수고를~~~ 6.6
책에있는 고대로 쓴거 같은데...에러가 나네여~~~ 이상-_-함~~~
http://khai.klsg.org/khai/5-12.html
이며~~
소스는
checkbox.html
####################################### 소-_-스 시작 #######################################
<html>
<head>
<script language="javascirpt">
<!--
function checkit(form)
{
var str="";
for(var i=1;i<=5;i++)
{
if(eval("form.obj" + i ".checked") == true)
{
str += i + "번재 항목을 선택하셨습니다!. 선택하신 항목의 값은 " + eval("form.obj" + i + ".value") + " 입니다.n";
}
}
alert(str);
}
//-->
</script>
</head>
<body>
<font size="2">
<form name="mresearch">
<b>아래의 항목중 하나를 선택하세요~!</b><p>
<input type="checkbox" name="obj1" value="1101">첫번째 항목<br>
<input type="checkbox" name="obj2" value="1102">두번째 항목<br>
<input type="checkbox" name="obj3" value="1103">세번째 항목<br>
<input type="checkbox" name="obj4" value="1104">네번째 항목<br>
<input type="checkbox" name="obj5" value="1105">다섯번째 항목<p>
<input type="button" value="결과확인" onclick="checkit(this.form)">
</form>
</font>
</body>
</html>
####################################### 소-_-스-_-끝 #######################################
어디서 에러가 나는지... ㅠ.ㅠ
ㅇ ㅏ 그리구여~~ 이 부분에서
<script language="javascirpt">
<!--
function checkit(form)
{
var str="";
for(var i=1;i<=5;i++)
{
if(eval("form.obj" + i ".checked") == true)
{
str += i + "번재 항목을 선택하셨습니다!. 선택하신 항목의 값은 " + eval("form.obj" + i + ".value") + " 입니다.n";
}
}
alert(str);
}
//-->
</script>
어케 돌아가는진 알겠는데여~~~
if(eval~~~~ 이부분에서 eval 이란것이 뭔지 궁금합니다.
답변 올려 주시는님엑 수고를~~~ 6.6
댓글 2
-
Legend
2002.05.09 00:13
-
이성희
2002.05.09 01:03
감사합니다~~~
이렇게 자세한 답변은 정말 첨 듣는거 같네여~~~
열심히 공부 해야 겠내여~~~ 이런 답변 보니~~ 공부 할 맛 나는군여~~
에서 javascirpt의 철자가 틀렸네요..script가 되어야지요.. 아예 language 안쓰면 브라우저에서 인식하지만
언어 값이 틀리면 브라우저에서 인식을 못합니다. 줄여서 jscript라고도 씁니다.
eval("form.obj" + i ".checked")
에서 변수 i 와 문자열을 연결할때는 +를 붙여주셔야 합니다.
eval함수는 문자열로 된 식을 실행하는 자바스크립트 내장함수입니다.
eval이 없다면 "form.obj1.checked" == true형태로 비교하게 되므로 문자열과 boolean타입과는
비교가 불가능할 뿐더러 또한 비교하고자 하는 것이 form.obj1.checked의 실제 값이므로
eval을 함수를 실행하여 실제 식으로 인식하게 하는 것이지요.
잠깐 이해를 돕기 위해 예를 들어 보면
a="1+2";
alert(a) 하게 되면 1+2 를 경고창에 출력하지만
alert(eval(a)); 하게 되면 식이 계산된 값인 3이 출력되지요.
그리고 예제를 보니 책이 조금 오래된 책으로 보이네요.. eval함수를 이용한 체크박스 확인은
실제에 잘 쓰지 않습니다. elements 속성을 이용해서 그냥 배열로 돌리지요..
보통 아래와같이 많이 하지요.. 체크 박스가 많아져도 name을 일일히 지정할 필요없이 간단히 체크가
가능하지요. 암튼 아래의 방법을 권해드립니다.
for(i=0;i<form.elements.length;i++)
if (form.elements[i].type == "checkbox" && form.elements[i].checked)
str += i+1 + "번재 항목을 선택하셨습니다!. 선택하신 항목의 값은 " + form.elements[i].value + " 입니다.\n";