如何在html5输入中使用“form = form_id”属性

时间:2012-12-29 21:08:17

标签: html5

我正在尝试使用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。

由于

4 个答案:

答案 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" />