¿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

Respuestas a la pregunta(3)

Su respuesta a la pregunta