请记住,用户无需单击提交输入。他们可以选择它并按下输入。
因此,考虑到提交表单的所有方式,如何确定在提交事件中使用哪一个表单。我在两个提交元素上有不同的名称。
答案 0 :(得分:4)
任何触发提交按钮的操作 - 无论是实际的鼠标点击还是某些键盘操作 - 仍然会触发“点击”事件,并仍然会将输入作为表单参数包含在内。
也就是说,如果您看到带有输入字段名称和值的表单参数,则表示您已单击该提交按钮。
编辑 - 如果表单提交因为您在文本字段中单击“Enter”而发生,则浏览器会选择第一个提交按钮(我认为;这似乎是Firefox至少做了什么)。 (等等;刮开; Firefox似乎在按下“Enter”时有焦点的元素后找到下一个“提交”输入...)
因此:
<form action='whatever' method='post'>
<input type='text' name='text'>
<input name='submit1' value='submit1' type='submit'>
<input name='submit2' value='submit2' type='submit'>
</form>
在文本字段中点击“Enter”将导致“submit1 = submit1”成为表单参数,当“submit1”具有焦点时将按“Enter”。标记为“submit2”并点击“Enter”将导致“submit2 = submit2”成为参数之一。
在任何一种情况下,只有一个“提交”输入显示在参数列表中。
答案 1 :(得分:1)
使用不同的值,而不是使用不同的名称,例如:
<input type="submit" name="submit" value="Submit A">
<input type="submit" name="submit" value="Submit B">
如果您希望标签与值不同,您也可以使用按钮而不是输入。