namedItem(sName) method를 지원하지 않네요.
지금 체크박스 객체를 통해서 폼 객체를 받아오고 폼 안의
호출한 체크박스와 name(id)이 동일한 체크박스를 배열로 전부 가져오려고 하거든요.
oColls = cbox.form.namedItem(cbox.name); 이 되질 않습니다.
namedItem은 w3c 표준인데 왜 Gecko DOM reference엔 없는거죠?
아 속상해요......................
DOM 표준을 완벽히 지원하지 않는지..
- 하늘다람쥐
- 도우미
- Posts: 287
- Joined: 2004 08 25 13:02 50
- Location: 푸른 하늘
- Contact:
원래 forms로 받는게 맞습니다. form은 원래 여러개가 될 수 있기 때문이죠. form을 사용하시려면 인덱스나 이름을 사용해서 한정시키셔야죠.
그리고 소스를 보니 cbox.form를 사용하셨는데, cbox 객체에 form이 붙어 있을리가 만무하니 document.forms.namedItem()을 사용하셔야 합니다.
허걱, 이 글은 08:20분 글입니다. 잠깐 접속이 안되더니 서버 시간이 이상해졌나봅니다.
<수정>
죄송합니다. 제가 잘 읽어보지도 않고..
cbox가 input 객체가 맞다면 form이 맞습니다. forms가 잘못된 것이죠.
input객체의 form에서는 getElementsByName()를 사용하실 수가 없습니다. 이 함수는 문서 전체(HtmlDocument)에서만 사용할 수 있기 때문이죠. 즉 document.getElementsByName()로 사용하시는게 맞습니다.
그리고 소스를 보니 cbox.form를 사용하셨는데, cbox 객체에 form이 붙어 있을리가 만무하니 document.forms.namedItem()을 사용하셔야 합니다.
허걱, 이 글은 08:20분 글입니다. 잠깐 접속이 안되더니 서버 시간이 이상해졌나봅니다.
<수정>
죄송합니다. 제가 잘 읽어보지도 않고..
cbox가 input 객체가 맞다면 form이 맞습니다. forms가 잘못된 것이죠.
input객체의 form에서는 getElementsByName()를 사용하실 수가 없습니다. 이 함수는 문서 전체(HtmlDocument)에서만 사용할 수 있기 때문이죠. 즉 document.getElementsByName()로 사용하시는게 맞습니다.
Last edited by 하늘다람쥐 on 2005 05 12 19:34 21, edited 1 time in total.
-
- 해커
- Posts: 724
- Joined: 2005 01 31 22:33 55
- Location: 대한민국
- Contact:
Re: DOM 표준을 완벽히 지원하지 않는지.
우선 form이 아니라 forms. 오타죠? ^^손님 wrote:namedItem(sName) method를 지원하지 않네요.
지금 체크박스 객체를 통해서 폼 객체를 받아오고 폼 안의
호출한 체크박스와 name(id)이 동일한 체크박스를 배열로 전부 가져오려고 하거든요.
oColls = cbox.form.namedItem(cbox.name); 이 되질 않습니다.
namedItem은 w3c 표준인데 왜 Gecko DOM reference엔 없는거죠?
아 속상해요......................
급하실 수 있으니 namedItem에 대한 부분에 대해서는 일단 미뤄두고
getElementsByName 를 사용하시면 됩니다.
getElementsByName(name) 을 통해서 객체를 가져오실 수 있습니다.
id를 통해서 가져오시려면 getElementById()는 아실거라 봅니다.
저는 namedItem를 써보질 않아서 이 부분에 대해서는 좀 찾아봐야 할 것 같습니다.
Re: DOM 표준을 완벽히 지원하지 않는지.
form이 맞지 않나요? forms는 form Collection이잖아요.우선 form이 아니라 forms. 오타죠? ^^
input 객체에서 form 프로퍼티를 통해 해당 폼객체 리턴받는 것으로 알고 있는데..
이것도 안 먹네요. 엔진상의 문제인지 다음 구문이 안됩니다.getElementsByName 를 사용하시면 됩니다.
function onClickCBox(cbox) {
cboxs = cbox.form.getElementsByName(cbox.name);
}
Re: DOM 표준을 완벽히 지원하지 않는지.
form이 맞지 않나요? forms는 form Collection이잖아요.우선 form이 아니라 forms. 오타죠? ^^
input 객체에서 form 프로퍼티를 통해 해당 폼객체 리턴받는 것으로 알고 있는데..
이것도 안 먹네요. 엔진상의 문제인지 다음 구문이 안됩니다.getElementsByName 를 사용하시면 됩니다.
function onClickCBox(cbox) {
cboxs = cbox.form.getElementsByName(cbox.name);
}
Re: DOM 표준을 완벽히 지원하지 않는지.
form이 맞지 않나요? forms는 form Collection이잖아요.우선 form이 아니라 forms. 오타죠? ^^
input 객체에서 form 프로퍼티를 통해 해당 폼객체 리턴받는 것으로 알고 있는데..
이것도 안 먹네요. 엔진상의 문제인지 다음 구문이 안됩니다.getElementsByName 를 사용하시면 됩니다.
function onClickCBox(cbox) {
cboxs = cbox.form.getElementsByName(cbox.name);
}
-
- 해커
- Posts: 724
- Joined: 2005 01 31 22:33 55
- Location: 대한민국
- Contact:
Re: DOM 표준을 완벽히 지원하지 않는지.
손님 wrote: form이 맞지 않나요? forms는 form Collection이잖아요.
input 객체에서 form 프로퍼티를 통해 해당 폼객체 리턴받는 것으로 알고 있는데.. :shock:
이것도 안 먹네요. 엔진상의 문제인지 다음 구문이 안됩니다.getElementsByName 를 사용하시면 됩니다.
function onClickCBox(cbox) {
cboxs = cbox.form.getElementsByName(cbox.name);
} :cry:
cbox가 input 객체를 인수로 취하는지 몰랐습니다. :)
form이 맞습니다.
제가 퇴근전에 답다느라 테스트 해보지 않고 달았느데
document.getElementsByName(name); 으로는 잘되는데
다른 객체.getElementsByName(name);는 안되는군요 ㅡㅡ;
잘못된 정보를 드려 죄송합니다.
alert(cbox.form[cbox.name].length);
이걸로는 안되겠습니까? :)
- 하늘다람쥐
- 도우미
- Posts: 287
- Joined: 2004 08 25 13:02 50
- Location: 푸른 하늘
- Contact:
휴, 서버시간이 이상하니 답글순서가 꼬여버렸군요.
W3C 표준안에 따라 namedItem()은 HTMLCollection 객체에서만 사용하실 수 있습니다. 하지만, 아시다시피 form 객체는 Collection 객체가 아니기 때문에 아래와 같이 수정을 하셔야 사용하실 수 있습니다. 물론 제가 제시했던 방법도 가능하구요. forms는 Collection 객체이니..
W3C에서 반환값이 Node로 되어 있어서, 불여우는 가장 처음 찾은 객체 하나를 반환합니다만 IE에서는 NodeList를 반환합니다. 그러니 원래 의도하신 것과는 다르게 작동할 것이란 얘기지요.
W3C 표준안에 따라 namedItem()은 HTMLCollection 객체에서만 사용하실 수 있습니다. 하지만, 아시다시피 form 객체는 Collection 객체가 아니기 때문에 아래와 같이 수정을 하셔야 사용하실 수 있습니다. 물론 제가 제시했던 방법도 가능하구요. forms는 Collection 객체이니..
Code: Select all
cbox.form.elements.namedItem(cbox.name)
Re: DOM 표준을 완벽히 지원하지 않는지.
박민권님 하늘다람쥐님 감사합니다.
The FORM element acts as a container for controls
박민권님 말씀대로 form[inputObject.id]를 사용하여 같은 id의 input배열을 받는 걸 해결했습니다.
os = o.form[o.id];
if(os.length > 1) {
for(j = 0; j < os.length; j++) if(os[j].checked) return os[j].value;
return null;
} else {
if(o.checked) return o.value;
return null;
}
form.elements는 정확히 control 배열로만 이루어진 객체를 받을 일이 없다면 할 필요가 없군요.
The FORM element acts as a container for controls
박민권님 말씀대로 form[inputObject.id]를 사용하여 같은 id의 input배열을 받는 걸 해결했습니다.
os = o.form[o.id];
if(os.length > 1) {
for(j = 0; j < os.length; j++) if(os[j].checked) return os[j].value;
return null;
} else {
if(o.checked) return o.value;
return null;
}
form.elements는 정확히 control 배열로만 이루어진 객체를 받을 일이 없다면 할 필요가 없군요.
Who is online
Users browsing this forum: No registered users and 3 guests