¿Por qué los elementos de formulario no se deben nombrar enviar?
Descubrí a través de la depuración que no debería nombrar ningún elemento del formularioname="submit"
, pero incluso después de buscar no encontré ninguna buena explicación de por qué?
Vea el ejemplo de código simple a continuación:
<!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>
Si tuPresiona enter mientras que en cualquier elemento de forma oHacer clic laBotón de enviar, funcionará.Si tuHacer clic sobre elEnviar enlace, tendra error
Error no manejado: 'document.getElementById (' test-form '). Submit' no es una función
Si simplementerebautizar tuBotón de enviar a cualquier otra cosa que no seaname="submit"
(incluso si solo se capitaliza una parte de ella) o simplementeretirar laname="submit"
atributo, entonces tanto elBotón de enviar yEnviar enlace trabajará.
Intenté esto en la última versión de Internet Explorer, Firefox, Opera, Chrome y Safari. Todos ellos tienen un comportamiento consistente con respecto a esto.
Como puede ver en mi ejemplo de código, no hay participación de jQuery ni de ninguna otra biblioteca de JavaScript.
Apreciaría la explicación. Gracias