我理解<fieldset>
的一般语义,以及name
上的<fieldset>
属性如何用于为一组输入赋予意义。 W3 wiki有很多例子。
但是,我不明白提交表单时name
元素的<fieldset>
属性是做什么的。根据{{3}},name
与表单数据一起提交。 MDN还提到它是元素的名称,用于表单提交。
虽然在name
上尝试了<fieldset>
属性,但我认为它不会与其余的表单数据一起提交。我不清楚它是否有语义之外的任何用途。
name
元素上的<fieldset>
属性是否应该与表单数据一起提交?如果是这样,它有价值吗?它做了什么?
答案 0 :(得分:2)
但是,我不明白提交表单时
<fieldset>
元素的名称属性是什么。
没有
你自己测试了一下:
虽然在
<fieldset>
上尝试使用name属性,但我认为它不会与其余的表单数据一起提交。
在规范摘要中(可能是从input
某处复制)似乎是一个错误,它已被复制到MDN参考上。
rules for form submission没有提及字段集。
W3C还提到它是元素的名称,用于表单提交。
完整的引用是:
name - 用于表单提交和form.elements API
的表单控件的名称
form.elements
API(以及getElementsbyName
等通用DOM API)是该属性产生任何实际效果的唯一位置。
答案 1 :(得分:2)
这对我来说有点奇怪,但似乎目的是让你可以通过myForm.elements
访问它,就像你可以使用任何其他表单元素一样。字段集确实与表单函数的方式有关(例如,making a fieldset "disabled"将应用于其所有子窗体控件),所以我想这是某些开发人员可能想要做的事情。
我非常确定这是它的唯一用途。字段集不具有值(即使您设置了一个值,您的浏览器也应该忽略它而不提交它),因此它永远不会包含在发送到服务器的内容中。
这是我试图理解的一个小测试:
var fruitform = document.getElementById("fruitform");
var output = document.getElementById("output");
function log(msg) {
output.innerHTML = output.innerHTML + "\n" + msg;
}
log("*** fruitform.elements ***")
log(JSON.stringify(fruitform.elements));
log("");
&#13;
<h2>test form</h2>
<!-- the 'action' url' is just a page that outputs any GET parameters you pass to it -->
<form action="http://www.w3schools.com/html/action_page.php" id="fruitform">
<fieldset name="facts">
type:
<input type="text" name="type" value="banana">
<br><br>
color:
<input type="text" name="color" value="yellow">
</fieldset>
<br>
<input type="submit">
</form>
<!-- place to put some output -->
<h2>output</h2>
<pre id="output">
</pre>
&#13;