fieldset的form属性是否作用于子控件?实测存疑
解答:
<fieldset>的form属性为何没传递给子控件 你测试发现的情况完全是HTML规范的预期行为,不是你的测试出了问题~
先明确fieldset的form属性到底是干嘛的
这个属性的作用并不是让内部的表单控件自动关联到指定表单,而是:
- 让
<fieldset>自身成为目标表单的一部分,比如当表单被禁用时,这个fieldset也会被同步禁用; - 如果给fieldset设置了
name属性,表单提交时会把这个name对应的取值(如果有的话)一起提交; - 但它不会将form关联关系传递给内部的input、button等子控件,这就是你为啥测试时发现输入框没提交到目标表单的原因。
如果你想让子控件关联到外部表单
得给每个子控件单独设置form属性才行,比如修改你的代码示例:
<body> <section> <form id="separate-form"></form> </section> <fieldset> <input type="text" form="separate-form" value="this will get submitted to #separate-form"> <button form="separate-form">submit</button> </fieldset> </body>
要是控件太多不想一个个加,也可以用JavaScript批量给子控件设置form属性,或者干脆把<fieldset>直接放到目标表单内部,这两种方式都能达到你想要的效果。
内容的提问来源于stack exchange,提问作者calipoop
相关产品推荐
相关产品推荐

