Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

prototype.js에서 $F()사용시

요즘 prototype.js에 좀 빠져들어 볼라고 하고 있다. 내가 빠져들기에는 너무 어려운 부분이 많아서.. ㅡ..ㅡ

어쨌든 이녀석을 제대로 사용하면 유용함은 거의 무궁무진할 것 같다.

어쨌던 prototype.js에서 $F("엘레먼트ID")를 하면 엘레먼트의 value를 가져올 수 있다.

document.폼네임.엘레먼트이름으로 하거나 ElementById를 사용하지 않아도 아주 편하다.

하지만 $F()는 getValue이기 때문에 값을 가져올 수는 있지만 값을 할당할 수는 없다.

ElementByID("엘레먼트ID").value하고는 다르다는 얘기다..

그래서 값을 할당하려면

$("엘레먼트ID").value = "test";

의 형식으로 사용해야만 가능하다. 생각해 본다면 당연한 얘기긴 하지만 쓸때는 좀 헷갈리기 때문에.. ㅎ
2007/09/16 00:56 2007/09/16 00:56

input type="file" 에서 값 초기화하기

<input type="file" name="attach" id="attach" />
을 사용했을 때 파일확장자를 제한하기 위해서 체크후에 잘못되었을 때 값을 초기화 해줄 필요가 있다.

근데 이게 만만치 않았단 말이지.... file의 경우에는 다른 input과 달라서 찾아보기를 통해서 입력하기 때문에

readonly로 기본 설정이 되어 있기 때문에

attach.value = ""; 라는 식의 자바스크립트로는 초기화 할 수가 없었다.

그래서 onchange="javascript:checkFile(this);" 를 통해서 자바스크립트를 호출해서 아래와 같이 해결했다.


function checkFile(file)                     
{
    file.select();
    document.selection.clear();
}

(물론 파일체크부분을 제거했다. 그부분에 대한 얘기가 아니므로..)

이렇게 하면 밸류를 초기화 할 수는 있지만 이거 뒤에 submit();을 할 경우 문제가 생긴다. 한번 오류나고 다시하면 되기는 하지만 아직 완전한 해결책은 찾지 못해서.. ㅡ..ㅡ
2007/09/16 00:38 2007/09/16 00:38