Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript在createElement输入上设置表单属性_Javascript_Html_Createelement - Fatal编程技术网

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

如何使用Javascript在createElement输入上设置表单属性,javascript,html,createelement,Javascript,Html,Createelement,有人能帮我吗? 我试图用这个函数动态创建一个输入,但是没有设置“form”属性 function addInput(parentID,inputNAME) { var padre = document.getElementById(parentID); var container = document.createElement("input"); container.type = "text"; container.name = inputNAME; c

有人能帮我吗? 我试图用这个函数动态创建一个输入,但是没有设置“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”)

不知道为什么“我不是”删除他/她的答案,这基本上是正确的。属性在DOM 2 HTML规范中指定为只读,并引用表单控件所在的表单。如果它不在表单中,它将是未定义的

该表单在HTML5中是新的,旨在将控件与其所在表单以外的表单相关联。这将用于嵌套表单

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

IE总是把属性和属性搞乱,IE 6用属性值替换表单属性。也许以后的版本表现不同,也许其中一个支持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>

我用过

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

而且它似乎在FF、Chrome和Opera中工作。

您想要实现什么?您的
setAttribute
正在元素上设置自定义属性。我认为您应该描述最终目标是什么。您的
setAttribute()
在FF中工作,但它没有任何效果,因为这与属性
form
无关,正如答案所说,该属性隐式设置为您将字段附加到的表单。
form
属性在HTML5中是新的,它允许您将表单字段与任意表单关联。很抱歉,缺少上下文。我在HTML5中使用form属性,以防止在用户决定执行其他操作而不是提交信息时,元素显示在URL中。我正在使用form>PHP进行导航。我的问题有什么不正确的地方吗?我在问关于表单属性的问题。。。默认情况下,与表单关联的元素与其最近的祖先表单元素相关联,但可能指定了一个表单属性来覆盖它。我刚刚指出了表单属性和属性之间的区别,这让许多web开发人员(包括那些开发IE的开发人员)感到困惑。表单属性(作为标准属性)是新的,因此浏览器支持会有所不同,结果也会有所不同。你没有陈述你期望它做什么,所以很难说为什么它没有做你想要的。Dunno提出了问题a-1。噢,IE8就像IE6一样,设置表单属性将表单属性设置为相同的字符串值,无论它是否是表单的ID。