La spécification indique qu'il ne peut y avoir qu'un attribut action
dans un formulaire.
Cela est logique, car l'attribut action spécifie la page à laquelle les données du formulaire seront affichées et l'afficher sur deux pages différentes n'a pas de sens (comment voir les résultats de plus d'une page?).
Si vous regardez le fragment DTD définissant l'élément FORM
de the spec:
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
<!ATTLIST FORM
%attrs; -- %coreattrs, %i18n, %events --
action %URI; #REQUIRED -- server-side form handler --
method (GET|POST) GET -- HTTP method used to submit the form--
enctype %ContentType; "application/x-www-form-urlencoded"
accept %ContentTypes; #IMPLIED -- list of MIME types for file upload --
name CDATA #IMPLIED -- name of form for scripting --
onsubmit %Script; #IMPLIED -- the form was submitted --
onreset %Script; #IMPLIED -- the form was reset --
accept-charset %Charsets; #IMPLIED -- list of supported charsets --
>
Vous verrez que l'attribut d'action est un. requis, b. n'a pas de spécificateur multiple, ce qui signifie qu'il ne devrait exister qu'une seule fois.
Ce n'est probablement que par hasard que cela fonctionne dans IE. Le comportement n'est pas défini et un autre navigateur peut s'étouffer sur cette entrée ou décider de choisir un attribut d'action aléatoire.