一个表单有两个按钮

时间:2012-08-23 13:23:27

标签: html forms http

我有一个带有两个按钮的表单,我还有一个参数,根据按下的按钮,它有两个不同的值。 如果我写这样的东西

<form>
     <input type="hidden" name="method" value="saveXml"/>
     <input type="submit" name="save" value="SAVE"/>

     <input type="hidden" name="method" value="cancelled"/>
     <input type="submit" name="back" value="BACK"/> 
</form>

参数&#34;方法&#34;始终以值&#34; saveXml&#34;传递给服务器。

由于任务的其他条件,我不能将这些按钮分成两种形式。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

  1. 将按钮更改为超链接。
  2. 使超链接调用不同的javascript函数。
  3. 特定的JS函数将使用您指定的值提交表单。
  4. 除此之外 - 您只能放置一个“隐藏”输入并使用Javascript动态更改其值,具体取决于单击了哪个按钮。这你还必须在javascript中检测。在这种情况下,提交也是通过JS完成的,而不是通过按钮点击。

答案 1 :(得分:0)

在表单发布值中,如果用户点击save按钮,则其字段将显示save且值为SAVE

如果用户点击back按钮,则其值为BACK

您不需要隐藏字段来执行此操作。

单击提交按钮时,浏览器将仅将用户单击的输入值发布到服务器。 (如果点击save,则不会发布back,反之亦然)

答案 2 :(得分:-1)

@Matthew给出了正确的建议。 这是示例php代码(将其视为PSEUDOCODE,只是为了理解逻辑):

[编辑以反映逻辑,而不是使用javascript history.back(-1)的PHP示例]

if( $_POST['save'] ) :
    // your saveXml case
    ...
else if ($_POST['back']) :
    // your back case
    ...

这样,只有按“保存”按钮才会处理保存(XML将被保存),只有按“返回”按钮才能处理后退。没有javascript,没有隐藏的字段。