如果一个HTML表单有两个<input type =“submit”>button,我怎么知道点击了哪个?
假设我有以下的HTML表单:
<form> ... <input type="submit" name="queue" value="Queue item"> <input type="submit" name="submit" value="Submit item"> </form>
我怎么知道用户点击了哪个button(不使用javascript)?
我查看提交的数据,似乎当"Queue Item"
被点击时, "queue" = "Queue Item"
被发送到服务器。 当"Submit item"
被点击,然后"submit" = "Submit item"
集发送。
我可以依靠这种行为吗? 它是否在HTML表单的标准中有记载? 你们怎么做?
是的,你可以依靠这个; 这里有完整的文档。 具体相关的行说:
当一个表单被提交处理时,一些控件的名字与他们的当前值配对,并且这些对被提交表单。 那些提交了名称/值对的控件称为成功控件。
和
如果表单包含多个提交button,则只有激活的提交button成功。
是的,你可以依靠这种行为。
当<input type="submit" name="queue" value="Queue item">
被点击时,字段“queue”将被设置,“submit”不会被提交。
而另一个被点击的时候,字段“提交”将被设置,而“队列”将不会被设置。
如果你不能保证这一点,你可以把它们分成两种forms,然后这样做。
你可以依靠这种行为。 你得到了input的价值。 我会使用javascript
来切换隐藏的表单值,但由于您提到没有javascript
你没有多个select。
这是一个标准。 由于它是一个input
标签,并有一个value
,这意味着你得到提交的value
。
将表单拆分为两种forms,复制其他动作所需的任何其他input。 或者,如果您真的需要知道用户是否想“排队还是提交”这个项目,那么将这两个提交button都改为无线电select,以在两个选项之间切换,并且有一个新的单独的“提交表单”button。
在这种情况下,如果你想要一个单击选项,你可以使用Javascript来检测何时选中一个单选button,并立即自动提交表单。 (使用JavaScript进行用户界面,而不是表单处理)