2014-06-09 30 views
2

我需要添加一個輸入元素到一個我不知道的標識。下面的代碼工作很大,如果只有一個頁面的形式找到一個沒有標識的表單,並添加輸入元素

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最接近()函數,但我更喜歡純JavaScript。
一個工作示例是谷歌recaptcha。有recaptcha挑戰文本框出現的地方,你把劇本和完全在你想要的形式。

所以大家在純javascript代碼中的任何幫助都將不勝感激。

感謝名單..

+2

我們怎樣才能知道什麼形式是正確的? – nicael

+0

顯示HTML,以及如何知道附加元素(從人的角度來看)。 – Justinas

+0

爲什麼不爲表單標籤使用「name」屬性? – Arvind

回答

1

如果要插入input標記成相同的形式在其中放置腳本標記。您可以參考這樣的特定表格

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

這在瀏覽器中並沒有得到廣泛的支持。 –

+0

此代碼在firefox和Chrome上運行gr8,但在IE中失敗..無論如何,我會堅持這一點.. – user3721229

0

類名添加Classform, 並在JavaScript FET形式

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

+0

'getElementsByClassName()'。它與標籤名稱訪問元素差不多。重讀這個問題。代碼後的第一句話。 – nicael

+0

對不起,我錯過了謝謝尼卡爾。 –

相關問題