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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.11
5.12
5.13
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1