我試着去創造只用JS這樣的元素創建輸入字段:使用純JavaScript
<input type="text" value="default">
要做到這一點,我想這樣的代碼:
var mi = document.createElement("input");
mi.type= "text"
mi.value = "default"
但是當我在Chrome中運行開發工具,它只創建這個元素:
<input type="text">
我錯過了什麼?
我試着去創造只用JS這樣的元素創建輸入字段:使用純JavaScript
<input type="text" value="default">
要做到這一點,我想這樣的代碼:
var mi = document.createElement("input");
mi.type= "text"
mi.value = "default"
但是當我在Chrome中運行開發工具,它只創建這個元素:
<input type="text">
我錯過了什麼?
設置一個HTMLElement的財產是不完全一樣,設置它的屬性向同樣的事情。
你最有可能想用element.setAttribute
var mi = document.createElement("input");
mi.setAttribute('type', 'text');
mi.setAttribute('value', 'default');
現在你可以看到
new XMLSerializer().serializeToString(mi);
// "<input type="text" value="default">"
在您的例子中,值由<input>
顯示的仍然是default
,它只是ISN」 t設爲屬性。
進一步注意的是,如果用戶改變值的<input>
,例如類型,屬性將不會再更改值,但設置值屬性仍然會更改它。同樣,這是因爲屬性不同於屬性。
+1表示清楚說明 –
注意:要設置或修改當前值,應儘可能使用屬性。例如,由於瀏覽器和環境之間的不一致,使用'elt.value = val'而不是'elt.setAttribute('value',val)',最值得注意的是XUL和IE(使用'class'代替IE 'className')。如果您想了解/瞭解更多,請做一些搜索。 +1。儘管OPs代碼應該可以正常工作:[jsfiddle](http://jsfiddle.net/Xotic750/cD8zZ/) – Xotic750
var i = document.createElement("input"); //input element, text
i.setAttribute('type',"text");
i.setAttribute('name',"username");
i.setAttribute('value',"default");
你可以把你正在使用的代碼插入到DOM的代碼? –
出現了什麼問題,該值是否顯示在頁面上或提交? – Bergi