for(i=0;i<formInfo['elementCount'];i++){
formElement = document.createElement('input');
formElement.type = 'text';
formElement.name = formInfo['elementName'][i];
formElement.setAttribute("value",formInfo['elementValue'][i]); // <-this part
console.log(formElement);
newForm.appendChild(formElement);
}
如果我使用以上代码,则无效:
formElement.value=formInfo['elementValue'][i];
console.log()
返回<input type="text" name="abc">
(缺少值attr)
但如果
,则有效 formElement.setAttribute("value",formInfo['elementValue'][i]);
console.log()
返回<input type="text" name="abc" value="123">
为什么formElement.value
方法不起作用?
使用chrome和ff检查了这一点,两者都有相同的结果
答案 0 :(得分:1)
取自:Properties and Attributes in HTML
value属性反映输入框内的当前文本内容,而value属性包含HTML源代码中value属性的初始文本内容。
因此,如果您想知道文本框中当前的内容,请阅读该属性。但是,如果您想知道文本框的初始值是什么,请阅读该属性。
答案 1 :(得分:0)
HTML值属性不一定是页面上显示的值。它被称为默认值 - 首次加载页面时使用
您必须设置defaultValue
。
尝试:
var formElement = document.createElement('input');
formElement.type = 'text';
formElement.defaultValue = "test";
formElement.name="test2";
console.log(formElement);