在HTML中隐藏输入有什么意义?这有什么常见的用途?

KRB*_*KRB 16 html forms input

我没有看到隐藏输入的好处?如果设置隐藏输入的值,为什么不在引用此隐藏输入的位置使用该值?

这有理由,但我不知道.

Bra*_*ace 23

它们用于传递表单提交时所需的数据.其中一个更常见的情况是允许用户编辑某些现有条目的表单.您需要知道他们正在编辑哪个条目,以便您在提交表单时可以更新数据库中的正确行.用户不需要编辑(甚至知道)条目的ID,因此隐藏字段在此处工作良好.

其他选择

URL参数:这也可以通过将参数构建到表单提交到的URL中来完成:

<form action="save.php?entry_id=1234">
Run Code Online (Sandbox Code Playgroud)

但这意味着您必须正确处理构建URL并自行转义数据,并且URL服务器接受的长度是有限的,因此它可能不适用于较长的数据.因此,通常使用隐藏的表单字段是更容易的方法.

会话变量:当编辑页面加载时,您将条目ID存储在会话变量中,然后在保存更改的页面上检索它.尽管如此,这更容易搞砸了; 设置和维护会话可能需要在几个不同的地方添加代码,然后他们的会话可以在加载和保存之间到期,如果他们打开了多个窗口或标签,你必须确保它有效,你必须确保它当他们回击/前进时不做奇怪的事情.由于所有这些潜在的陷阱,它不是解决这个问题的好方法 - 传递id与提交的数据是更加健壮.

Cookie:在许多语言/框架中使用Cookie跟踪会话,因此它们基本上是相同的解决方案.即使会话被其他方法跟踪,但是陷阱与会话变量相同.

  • @KRB - 我添加了更多方法来完成同样的事情。它们不一定是更好的方法,但它们有其用途。 (2认同)

gen*_*sis 10

它发送用户不知道或不感兴趣的其他信息(例如安全令牌),这样如果表单提交两次,您可以比较令牌并拒绝/接受该提交.