createElement('input') 의 IE버그

#현상 (IE에서만 발생(FF 정상작동))

var obj = document.createElement('input'); 으로 개체를 만들경우 .name를 지정할 수 없다.
obj.name = 'test'; //무시됨
obj.setAttribute('name','test'); //정상적으로 .name에 값이 들어가는게 아님

#해결법

1.
var obj = document.createElement('<input name="test" />');
처럼 태그 문자열로 생성

or

2.
var obj = document.getElementById('base_obj').cloneNode(true); 
여기서 id='base_obj'인걸 미리 만들어두고 그 노드를 복제해서 사용

#해결법의 문제점

1. 이 방법은 IE전용임
2. 미리 기본노드를 만들어 놓아야함

 

#한번에 해결하기

function createInputElement(type,name,value){
 if(!type){type='';}
 if(!name){name='';}
 if(!value){value='';}
 
 var obj = null;
 try{
  obj = document.createElement('<input type="'+type+'" name="'+name+'" value="'+value+'" />');
 }catch(e){
  obj = document.createElement('input');
  obj.type = type;
  obj.name = name;
  obj.value = value;
 }
 return obj
}

var inputNode = createInputElement('text','test','23');

 

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자