Como é determinado o botão de envio padrão em um formulário HTML?
Se um formulário for enviado, mas não por um botão específico, como
pressionandoEntrausingHTMLFormElement.submit()
em JScomo um navegador deve determinar qual dos vários botões de envio, se houver, usar como o pressionado?
Isto é significativo em dois níveis:
calling anonclick
manipulador de eventos anexado a um botão de envio os dados enviados de volta ao servidor webMeus experimentos até agora mostraram que:
quando pressionarEntra, Firefox, Opera e Safari usam o primeiro botão de envio no formulárioquando pressionarEntra, O IE usa o primeiro botão de envio ou nenhum, dependendo das condições que não consegui descobrir todos esses navegadores não usam nenhum para o envio de JSO que diz o padrão?
Se isso ajudar, aqui está o meu código de teste (o PHP é relevante apenas para o meu método de teste, não para a minha própria pergunt
<!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>