使用纯Javascript创建输入字段

使用纯Javascript创建输入字段,javascript,html,createelement,Javascript,Html,Createelement,我正在尝试仅使用JS创建此类元素: <input type="text" value="default"> 但当我在Chrome Dev工具中运行它时,它只会创建以下元素: <input type="text"> 我缺少什么?设置a的属性与将其属性设置为同一事物并不完全相同 您很可能想使用 现在你可以看到了 new XMLSerializer().serializeToString(mi); // "<input type="text" value="def

我正在尝试仅使用JS创建此类元素:

<input type="text" value="default">
但当我在Chrome Dev工具中运行它时,它只会创建以下元素:

<input type="text">

我缺少什么?

设置a的属性与将其属性设置为同一事物并不完全相同

您很可能想使用

现在你可以看到了

new XMLSerializer().serializeToString(mi);
// "<input type="text" value="default">"
new XMLSerializer().serializeToString(mi);
// ""
在您的示例中,
显示的值仍然是
默认值,只是没有设置为属性


进一步注意,如果用户更改了
的值,例如键入该值,则设置属性将不再更改该值,但设置值属性仍将更改该值。同样,这是因为属性与属性不同。

我认为您缺少;在“text”之后。

是否也可以输入用于将元素插入DOM的代码?有什么问题,值没有显示在页面中或提交时?不需要分号。。。但PreferedNote:要设置或修改当前值,应尽可能使用属性。例如,使用
elt.value=val
而不是
elt.setAttribute('value',val)
,这是由于浏览器和环境之间的不一致,最明显的是XUL和IE(即使用
class
而不是
className
)。如果你想知道/了解更多,做一点搜索+1.尽管如此,OPs代码仍然可以正常工作:
var mi = document.createElement("input");
mi.setAttribute('type', 'text');
mi.setAttribute('value', 'default');
new XMLSerializer().serializeToString(mi);
// "<input type="text" value="default">"
var i = document.createElement("input"); //input element, text
i.setAttribute('type',"text");
i.setAttribute('name',"username");
i.setAttribute('value',"default");