我试着去创造只用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