假设我有以下HTML表单:
<form>
...
<input type="submit" name="queue" value="Queue item">
<input type="submit" name="submit" value="Submit item">
</form>
如何知道用户点击了哪个按钮(不使用javascript)?
我查看了提交的数据,似乎在点击"Queue Item"
时,"queue" = "Queue Item"
会被发送到服务器。点击"Submit item"
后,"submit" = "Submit item"
设置已发送。
我可以依赖这种行为吗?它是否在HTML表单的标准中的某处记录?你们是怎么做到的?
答案 0 :(得分:54)
是的,你可以依靠这个;它已完整记录here。具体相关部分说:
当提交表单进行处理时,某些控件的名称与其当前值配对,并且这些对与表单一起提交。提交名称/值对的控件称为成功控件。
和
如果表单包含多个提交按钮,则只有激活的提交按钮成功。
答案 1 :(得分:5)
是的,你可以依靠这种行为。
单击<input type="submit" name="queue" value="Queue item">
时,将设置“队列”字段,并且不会“提交”。
当点击其他对象时,将设置“提交”字段,并且不会设置“队列”。
如果你不确定这一点,可以将它们分成2个表格并按照这种方式进行处理。
答案 2 :(得分:3)
您可以依赖此行为。您获得输入的值。我会使用javascript
切换隐藏的表单值,但由于您没有提及javascript
,因此您没有多个选择。
这是一个标准。由于它是input
标记,并且有value
,这意味着您已提交value
。
答案 3 :(得分:0)
将表单拆分为两种形式,复制其他操作所需的任何其他输入。或者,如果您真的只需要知道用户是否想要“排队并提交”该项目,请将两个提交按钮更改为无线电选择以在两个选项之间切换,并使用新的单独的“提交表单”按钮。
在这种情况下,如果您需要单击选项,则可以使用Javascript检测何时选择了其中一个单选按钮,并立即自动提交表单。 (使用Javascript进行用户界面,而不是表单处理)