Por que os elementos do formulário não devem ser nomeados?
Eu descobri através da depuração que eu não deveria nomear nenhum elemento de formulárioname="submit"
, mas mesmo depois de procurar, não encontrei nenhuma boa explicação do porquê?
Veja o exemplo de código simples abaixo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="javascript:alert('submitted');" method="post" id="test-form">
<label>Name</label>
<input type="text" name="name-field" value="" />
<input type="submit" name="submit" value="Submit Button" /> <!-- name should not be "submit" -->
<p><a href="javascript: document.getElementById('test-form').submit();">Submit Link</a></p>
</form>
</body>
</html>
Se vocêspressione Enter enquanto em qualquer elemento de formulário ouClique aBotão de envio, vai funcionar.Se vocêsClique noEnviar Link, vai ter erro
Erro não tratado: 'document.getElementById (' test-form '). Submit' não é uma função
Se você simplesmenterenomear seuBotão de envio para outra coisa senãoname="submit"
(mesmo que você apenas capitalize uma parte dele) ou apenasremover aname="submit"
atributo, em seguida, tanto oBotão de envio eEnviar Link vai funcionar.
Eu tentei isso na última versão do Internet Explorer, Firefox, Opera, Chrome e Safari. Todos eles têm um comportamento consistente em relação a isso.
Como você pode ver no meu exemplo de código, não há envolvimento do jQuery ou de qualquer outra biblioteca JavaScript.
Eu apreciaria a explicação. obrigado