Dlaczego elementy formularza nie powinny być nazywane?

Odkryłem poprzez debugowanie, że nie powinienem nazywać żadnych elementów formularzaname="submit", ale nawet po przeszukaniu nie znalazłem żadnego dobrego wyjaśnienia dlaczego?

Zobacz prosty przykład kodu poniżej:

<!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>
Jeśli tynaciśnij enter na dowolnym elemencie formularza lubKliknij Prześlij przycisk, to będzie działać.

Jeśli tyKliknij naPrześlij link, będzie miał błąd

Nieobsługiwany błąd: „document.getElementById („ formularz testowy ”). Submit” nie jest funkcją

Jeśli po prostuPrzemianować TwójPrześlij przycisk do wszystkiego innego niżname="submit" (nawet jeśli po prostu wykorzystasz część) lub po prostuusunąć name="submit" atrybut, a następnie obaPrześlij przycisk iPrześlij link będzie działać.

Próbowałem tego w najnowszej wersji Internet Explorer, Firefox, Opera, Chrome i Safari. Wszyscy mają konsekwentne zachowanie w tym zakresie.

Jak widać w moim przykładzie kodu, nie ma udziału jQuery ani żadnej innej biblioteki JavaScript.

Byłbym wdzięczny za wyjaśnienie. Dzięki

questionAnswers(3)

yourAnswerToTheQuestion