如何确定HTML表单上的默认提交按钮?
如果表单已提交但未通过任何特定按钮提交,例如
按下 Enter
HTMLFormElement.submit()
在JS中使用
浏览器应该如何确定多个提交按钮中的哪一个(如果有的话)用作按下的按钮?
这在两个层面上很重要:
调用onclick
附加到提交按钮的事件处理程序
数据发送回Web服务器
到目前为止,我的实验表明:
按下时Enter,Firefox,Opera和Safari使用表单中的第一个提交按钮
按下时Enter,IE使用第一个提交按钮或根本不使用,具体取决于我无法弄清楚的条件
所有这些浏览器根本不使用JS提交
标准说什么?
如果它会有帮助,这是我的测试代码(PHP仅与我的测试方法相关,而不是我的问题本身)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Test</title></head><body><h1>Get</h1><dl><?php foreach ($_GET as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?></dl><h1>Post</h1><dl><?php foreach ($_POST as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?></dl><form name="theForm" method="<?php echo isset($_GET['method']) ? $_GET['method'] : 'get'; ?>" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>"> <input type="text" name="method" /> <input type="submit" name="action" value="Button 1" onclick="alert('Button 1'); return true" /> <input type="text" name="stuff" /> <input type="submit" name="action" value="Button 2" onclick="alert('Button 2'); return true" /> <input type="button" value="submit" onclick="document.theForm.submit();" /></form></body></html>
繁星淼淼