0

我正在尝试对 html5 输入使用“form”属性,如下所述:

[1] http://www.w3schools.com/html5/att_input_form.asp

[2] http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_input_form

属性的描述说 form 属性:“为元素所属的一个或多个表单指定一个空格分隔的 id 列表”

我正在使用 W3C 的 TryIt 编辑器中的以下代码对此进行测试(上面的链接 2)

<form action="demo_form.asp" id="form1">
First name: <input type="text" name="fname" /><br>
<input type="submit" value="Submit" />
</form>

<form action="demo_form.asp" id="form2">
First name: <input type="text" name="fname" /><br>
<input type="submit" value="Submit" />
</form>

Last name: <input type="text" name="lname" form="form1 form2" />

我在 form2 中提供了“string_for_form2”,在 lname 字段中提供了“lastname”。我得到的输出为:

fname=string_for_form2

代替

fname=string_for_form2&lname=lastname

任何想法为什么结果不符合预期?我已经尝试过 Firefox 17 和 Chrome 23。

谢谢

4

4 回答 4

2

因为您正在尝试分配两个表单所有者。

“默认情况下,与表单关联的元素与其最近的祖先表单元素相关联(如下所述),但可能具有指定的表单属性来覆盖它。”

http://www.w3.org/TR/html5/forms.html#association-of-controls-and-forms

这个属性只允许标记的灵活性,它不会改变以前规范的表单所有权范式。

于 2012-12-29T21:14:24.537 回答
1

我在 W3C HTML5 规范中找不到任何内容来支持www.w3schools.com网站上关于 input 元素可以属于 2 种或更多形式的声明。输入元素的所有者始终以单数形式提及,而从不作为列表提及。此外,在developer.mozilla.org上有关于仅与一种表单的输入关联的明确声明。form 属性的描述如下:

form:一个字符串,指示此输入属于哪个元素。输入只能是一种形式。

于 2014-10-02T08:44:53.263 回答
0

输入字段只能在一个表单上。为了清楚起见,最好将其包含在表单范围内。

在您的表单上也使用名称而不是仅使用id 。虽然 html5 支持它,但旧的浏览器呢?IE 怎么了?

<form action="demo_form.asp" name="form1" id="form1">

<form action="demo_form.asp" name="form2" id="form2">
于 2012-12-29T21:13:49.310 回答
0

在提交时使用 javascript 和名称表单

<form action="demo_form.asp" onsubmit= 'this.id="form1"'>
First name: <input type="text" name="fname" /><br>
<input type="submit" value="Submit" />
</form>

<form action="demo_form.asp" onsubmit= 'this.id="form1"'>
First name: <input type="text" name="fname" /><br>
<input type="submit" value="Submit" />
</form>

Last name: <input type="text" name="lname" form="form1" />
于 2015-03-27T21:42:24.213 回答