Sous IE : Ça me retourne le input qui a le nom action.
Sous FF et Opéra : L'attribut action du formulaire.
Normalement getAttribute retourne un attribut, ce que IE ne fait pas. Des suggestions pour que ça marche sur IE ? Il existe des "tweaks" pour contourner ce bug ?
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 7 nov. 2007 à 06:20
Bonjour à tous,
tu peux toujours utiliser
this.attributes.action.nodeValue
exemple
//--------------------------------------- function _GetAttribute( this_, attribut_){
if( this_.attributes[attribut_]){
return( this_.attributes[attribut_].nodeValue);
}
else
return( undefined);
}
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 7 nov. 2007 à 00:10
Hello,
oui,
et de manière générale d'ailleurs : ne pas utiliser de valeur pour un
attribut name qui soit aussi un élément du DOM (attribut, élément,
etc).
Bref, mets name="act" par exemple, et re-teste ton code.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 7 nov. 2007 à 00:16
Pour l'explication, quand même...
Mettons que tu aies un id à ton formulaire et que tu fasses appel à une fonction sur le onsubmit :
<form action="get/_.php" id="myFrm" method="POST" onsubmit="lambdaFunc();">
</form>
et dans lambdaFunc, tu es autorisé à attaquer ton formulaire ainsi :
with (document.getElementById('myFrm')) {
action.value="oula!!!!";
}
et là , tu crois que tu modifies quoi...? Très clairement (et ce n'est pas un bug), tu vas chercher l'élément enfant de ton formulaire qui a pour attribut name "action" pour le premier.
Et si maintenant tu fais ça :
with (document.getElementById('myFrm')) {
action.value="aie...";
action = 'aie aie aie...";
}
Il se passe quoi? T'es pas sûr? A mon avis, ton navigateur non plus...et pour cause : ton code est ambigüe.
Alors ok, pour le getAttribute(), C'EST un bug. Mais ça reste une situation qu'il vaut mieux éviter parce que c'est source d'erreur. action est un mot réservé du DOM html. Ne l'utilise pas pour autre chose.