역시나 이번에도 문제를 안고 찾아왔습니다..
예전에 쓰던 전체선택용 스크립트를 이번에 웹표준 방식으로 바꾸어 볼려고 했는데
아예 동작을 안하고 자바스크립트 콘솔에선 함수가 정의가 되지 않았다는 군요.
잘 아시는 분들께 수정을 요청드립니다.
자바 스크립트부분
//일괄 선택용 자바스크립트
function selectall_ok()
if (document.del_list.del_chk) //체크박스가 하나라도 있을 때
{
if (document.del_list.del_chk.length==null) //체크박스가 하나일 경우
{
document.del_list.del_chk.checked = true;
}
else
{
for (var i=0; i<document.del_list.del_chk.length;i++)
{
document.del_list.del_chk.checked = true;
}
}
}
}
이 소스를 이렇게 바꾸어 보았는데요.
function selectall_ok()
{
if (document.getElementsByName("del_chk")
{
if (document.getElementsByName("del_chk").length==null)
{
document.getElementsByName("del_chk").checked=true;
}
else
{
for (var i=0; i<document.getElementsByName("del_chk").length;i++)
{
document.getElementsByName("del_chk").checked=true;
}
}
}
}
이게 동작을 하지 않습니다....
html 코드
<table>
<form id="del_list" name="del_list" method="post" action="어디어디">
<tr><td><input type="checkbox" name="del_chk" value="1">내용1</td></tr>
<tr><td><input type="checkbox" name="del_chk" value="2">내용2</td></tr>
<tr><td><input type="checkbox" name="del_chk" value="3">내용3</td></tr>
</form></table>
<a href="#" onclick="selectall_ok(); return false;">클릭</a>
제대로 공부해보지 못한 저로선 무엇이 문제인지 알수가 없네요.
무엇이 잘못ㅤㄷㅚㅆ는지 지적해 주세요.
ps.
웹표준 자바스크립트에 대해서 이해하기 쉽게 정리된 사이트 (될수 있으면 한글..)가 어디 없을까요? w3c나 ㅤㄱㅔㄱ코 사이트는 영어라 영 이해가...(:|)
역시나 어려운 표준 자바스크립트..
- 하늘다람쥐
- 도우미
- Posts: 287
- Joined: 2004 08 25 13:02 50
- Location: 푸른 하늘
- Contact:
Re: 역시나 어려운 표준 자바스크립트..
if (document.getElementsByName("del_chk") 이부분에 괄호가 하나 없습니다.oragi wrote:Code: Select all
function selectall_ok() { if (document.getElementsByName("del_chk") { if (document.getElementsByName("del_chk").length==null) { document.getElementsByName("del_chk").checked=true; } else { for (var i=0; i<document.getElementsByName("del_chk").length;i++) { document.getElementsByName("del_chk")[i].checked=true; } } } }
- 하늘다람쥐
- 도우미
- Posts: 287
- Joined: 2004 08 25 13:02 50
- Location: 푸른 하늘
- Contact:
음 제가 좀더 줄여보았는데요.
일단 document.getElementsByName() 함수는 주어진 이름에 대한 elements가 하나도 없을 경우 길이가 0인 collection(배열로 생각하면 편합니다)를 넘기게 되어 있는데요. 따라서 다음과 같이 하면 쉽게 할 수 있습니다.
function selectall_ok()
{
var delObjs = document.getElementsByName("del_chk");
for (var i=0; i < delObjs.length; i++)
{
delObjs.checked = true;
}
}
굳이 얻어온 체크박스가 1개인지 그 이상인지 확인할 필요는 없다고 봅니다.
function selectall_ok()
{
var delObjs = document.getElementsByName("del_chk");
for (var i=0; i < delObjs.length; i++)
{
delObjs.checked = true;
}
}
굳이 얻어온 체크박스가 1개인지 그 이상인지 확인할 필요는 없다고 봅니다.
Who is online
Users browsing this forum: Ahrefs [Bot] and 2 guests