如何使用Javascript在createElement输入上设置表单属性
有人能帮我吗? 我试图用这个函数动态创建一个输入,但是没有设置“form”属性如何使用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
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。