隐藏输入字段是否必须在表单中?

15

我有一个页面,需要通过Ajax/jQuery存储一个值进行处理。我使用一个隐藏的输入字段来存储这个值,代码如下:

<input type="hidden" name="..." id="..." value="..." />
我可以通过jQuery访问这个值,即使它不在表单中(也就是说,它只是在我的HTML输出的开头)。
问题:尽管它可以工作,但从正确性的角度来看,拥有一个不属于表单的隐藏输入值是否是可以/合法的?

1
是的,如果不使用XHTML,你可以在任何表单之外使用它。 - A. Wolff
1
除非您使用一些旧的浏览器(例如,IE7会忽略<input>标签在<form>标签之外的情况),否则请勿烤制@roasted。在您说没有人再使用它们之前,请注意大多数英国政府计算机上都安装有IE6,并且没有升级计划。 - Aleks G
@AleksG 那是一个很好的观点! - A. Wolff
2
可能是[<input>是否在没有<form>的情况下格式正确?](https://dev59.com/XHA75IYBdhLWcg3wdIl0)的重复。 - Frédéric Hamidi
3个回答

14

如果您使用jQuery从ajax发送post请求并检索值,则可以将隐藏输入框放在表单之外。然而,如果您的应用程序必须降级(即在没有JavaScript的情况下工作),则应该将隐藏的输入框放在表单中,以便在提交表单时将其发送到服务器。


有没有办法在表单提交时隐藏 display none 字段? - M Amir Shahzad

7
您可以把隐藏的输入字段放在任何您想要的地方。同样,除提交按钮外,您也可以放置任何其他类型的输入字段。您可以放置按钮、选择框等等,而不必将其包装在表单中。
请注意,如果您提交一个表单,只有该表单内的元素才会被提交。
我不知道您计划使用隐藏输入字段做什么,但如果您正在存储某种来自脚本等的数据,我建议使用data标签或通过使用类/ID指示值,或将数据存储为js变量。拥有大量隐藏字段并不是错误的,但我一直认为这是一种丑陋的解决方案。

2

是的,您可以在没有表单的情况下拥有有效的输入。


(注:已保留HTML标签)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接