2014-06-09 2 views
2

ID가 모름 인 양식에 입력 요소를 추가해야합니다. 페이지에 하나의 양식이있는 경우 아래 코드는 큰 일Id가없는 양식 찾기 및 입력 요소 추가

var dd = document.createElement("div"); 
dd.id = "cont"; 
dd.name = "cont"; 
var pp = document.createElement("input"); 
pp.type = "password"; 
pp.name = "pass"; 
dd.appendChild(pp); 

document.getElementsByTagName('form')[0].appendChild(dd); 

하지만이 입력 요소가 위의 코드와 첫 번째 양식에 추가 얻을 페이지에 1 개 이상의 형태로있을 때. HTML 페이지에 몇 개의 양식이 있는지 모릅니다. 사용자는 페이지의 어떤 형태로든 스크립트를 배치 할 수 있습니다. 그래서 어떻게 입력 요소가 올바른 형태로 추가되는지 확인해야합니다. 일부 jQuery closest() 함수를 제안하지만 나는 순수 자바 스크립트를 선호합니다.
한 가지 작동 예제는 google recaptcha입니다. 거기에 스크립트를 넣고 정확히 U 원하는 양식에 정확한 텍스트가 나타납니다.

안녕하십니까, 순수한 자바 스크립트 코드의 도움을 많이 주시면 감사하겠습니다.

고맙습니다 ..

+2

어떤 형식이 올바른지 어떻게 알 수 있습니까? – nicael

+0

HTML을 표시하고 요소를 추가 할 양식을 (인간의 관점에서) 어떻게 알 수 있습니까? – Justinas

+0

form 태그에' 'name '' 속성을 사용하지 않으시겠습니까? – Arvind

답변

1

같은 형태로 input 태그를 삽입하려면 스크립트 태그를 넣은 위치. 이 특정 양식을 참조 할 수 있습니다.

var form = document.currentScript.parentNode; 
form.appendChild(dd); 
+0

이것은 브라우저 사이에서 널리 지원되지 않습니다. –

+0

이 코드는 firefox와 Chrome에서 gr8을 작동하지만 IE에서는 실패했습니다. 어쨌든 나는 이걸 고수 할거야. – user3721229

0

클래스 이름으로 형성 form, 와 자바 스크립트 FET에 Class 추가

document.getElementsByClassName('classname')[0].appendChild(dd);

+0

'getElementsByClassName()'. 태그 이름으로 요소에 액세스하는 것과 거의 같습니다. 질문을 다시 읽으십시오. 코드 뒤의 첫 번째 문장. – nicael

+0

죄송합니다. 감사합니다. nicael. –