我正在尝试使用html5输入的“form”属性,如下所述:
[1] http://www.w3schools.com/html5/att_input_form.asp
[2] http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_input_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。
由于
答案 0 :(得分:2)
因为您正在尝试分配两个表单所有者。
“默认情况下,与表单相关的元素与其最近的祖先表单元素相关联(如下所述),但可能指定了一个表单属性来覆盖它。”
http://www.w3.org/TR/html5/forms.html#association-of-controls-and-forms
此属性只允许标记灵活性,它不会更改以前规范中的表单所有权范例。
答案 1 :(得分:1)
我在W3C HTML5规范中找不到任何内容来支持www.w3schools.com站点上的语句,即输入元素可以属于2个或更多个表单。输入元素的所有者总是以单数形式提及,而从不作为列表提及。 此外,在developer.mozilla.org上,只有一个表单的输入关联有明确的陈述。表单属性的描述说明:
form:一个字符串,指示此输入所属的元素。 输入只能采用一种形式。
答案 2 :(得分:0)
输入字段只能在一个表单上。为清晰起见,最好将其包含在表单范围内。
在表单上也使用 name 而不是 id 。虽然html5支持它,但旧版浏览器的用途是什么?与IE有什么关系?
<form action="demo_form.asp" name="form1" id="form1">
<form action="demo_form.asp" name="form2" id="form2">
答案 3 :(得分: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" />