如何使用Javascript在createElement输入上设置form属性

时间:2012-06-30 23:45:22

标签: javascript html5 createelement

有人可以帮帮我吗? 我正在尝试使用此函数动态创建输入,但未设置“form”属性

function addInput(parentID,inputNAME) {
    var padre = document.getElementById(parentID);
    var container = document.createElement("input");
    container.type = "text";
    container.name = inputNAME;
    container.value = "";
    container.form = 'extra';
    var enter = document.createElement("br");
    padre.appendChild(container);
    padre.appendChild(enter);
}

我也试过这个:

container.formName = 'extra';
container['form'] = 'extra';
container.attributes['form'] = 'extra';
container.createAttribute('form','extra')

编辑:
答:
container.setAttribute("Form",'extra');

2 个答案:

答案 0 :(得分:7)

我用过

container.setAttribute("Form",'extra');

它似乎在FF,Chrome和Opera中工作。

答案 1 :(得分:2)

Dunno为什么“我不是我”删除他/她的答案,这大多是正确的。 {2} HTML规范中将form 属性指定为readonly,并引用表单控件所在的表单。如果表单不在表单中,则表示未定义。< / p>

表单attribute是HTML5中的新增功能,旨在将控件与其所在的表单相关联。这适用于嵌套表单。

在输入元素上设置表单属性可能会产生不可预测的结果。在符合HTML5的浏览器中,如果form属性的值是文档中另一个表单的ID,则该控件将与该表单关联,因此其form属性是对表单的引用,其form属性将是一个字符串(相关表格的ID)。否则,属性值不会反映在控件的表单DOM属性中,但可以将属性值保持为设置。

IE总是弄乱属性和属性,IE 6用属性值替换form属性。也许后来的版本表现不同,也许其中一个版本支持HTML5。

以下内容可能有所帮助:

<form id="form0">
  <div>
    <input type="button" form="form1" onclick=
      "alert('form property is: ' + this.form + ' ' + this.form.id + 
             '\nform attribute: ' + (typeof this.getAttribute('form')) +
             ' ' + this.getAttribute('form'))
      " value="Show form property  and attribute">
  </div>
</form>
<form id="form1"><div></div></form>