file 타입의 input태그는 read-only 속성이기 때문에 value 속성에 사용자가 임의로 값을 넣을수가 없다.
따라서 document.getElementsByName("ATTACH_FILE_NAME")[0].value = ""; 나 $(".ATTACH_FILE_NAME").val(""); 처럼 사용할 수 없다. (ie에서 테스트해 봄)
익스플로러에서는 Line 10~Line 12 와 같이 작성해 초기화 시켰다. 그런데 크롬에서는 Line 8의 방법이 먹히는 듯 싶다.
Line 10 : 괄호 안의 name을 통해 복수개의 객체로 가져온다. (배열)
Line 11 : i 번째를 선택한다.
Line 12 : 선택된 컨트롤의 값을 삭제한다.
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script> <script type="text/javascript"> function clear_test(){ var fileCnt = 2; if (fileCnt > 0) { for (var i = 0; i < fileCnt; i++) { if (document.getElementsByName("ATTACH_FILE_NAME")[i].value != null){ //document.getElementsByName("ATTACH_FILE_NAME")[i].value = ""; //이걸론 초기화가 안됨 var files = document.getElementsByName("ATTACH_FILE_NAME"); files[i].select(); document.selection.clear(); } } } } </script> <input type="file" name="ATTACH_FILE_NAME"/><br/> <input type="file" name="ATTACH_FILE_NAME"/><br/> <input type="button" value="초기화 버튼" onclick="clear_test()" />
참고 사이트 : Input FileUpload files Property ( http://www.w3schools.com/jsref/prop_fileupload_files.asp )
'프로그래밍 > JavaScript | Css | Html' 카테고리의 다른 글
inflearn > ‘ReactJS로 웹 서비스 만들기’ 강좌 (0) | 2017.12.07 |
---|