Problème avec l'execution d'une fonction personnalisée

theclemmm Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -  
theclemmm Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, voila: j'ai un probleme lors de l'execution de ma fonction. le code:


<form>
<input type="text" id="texte"/>
<input type="button" id="boutton" value="afficher"/>
</form>

<script>
var texte = document.getElementById('texte'),
boutton = document.getElementById('boutton'),
formulaire = document.getElementsByTagName('form');

function fond(Couleur) {
formulaire.style.backgroundColor = Couleur;
}
boutton.onclick = function(e) {
fond(texte.value);
}


Quand j'entre une couleur, elle ne s'affiche pas. j'ai essayé de mettre par exemple: blue, 'blue', "blue" mais rien a faire. Si vous avez la reponse, merci de me rep.

Cordialement
A voir également:

1 réponse

Utilisateur anonyme
 
Bonjour

Tu accèdes à certains de tes éléments grâce à leur id (getElementById) et à d'autres par le nom du tag (getElementsByTagName). Tu as le droit, mais...
Ça ne t'a pas frappé que dans la première fonction, il n'y a pas de 's' au mot Element, alors qu'il y en a un dans la deuxième fonction ?

C'est que l'id d'un élément est unique : il y a donc obligatoirement un seul élément qui a un id donné. La fonction getElementById te rend cet élément, celui qui a cet id (ou le premier si tu as eu la mauvaise idée d'utiliser plusieurs fois le même id)

Par contre, tu peux très bien plusieurs éléments qui ont le même tag, c'est même le cas le plus souvent. La fonction getElementsByTagName ne rend donc pas un élément, mais un tableau (Array) d'éléments. Même si parfois ce tableau peut contenir un seul, voire aucun élément.
Dans ton cas, la variable "formulaire" contient donc un tableau, et non pas un élément. Et un Array javascript n'a pas de style, donc formulaire.style n'est pas défini.
Par contre, formulaire[0], formulaire[1]... sont des éléments (si tu as plusieurs formulaires) et formulaire[0].style serait correct.
Mais le plus simple est de définir un id pour ton formulaire aussi, et d'utiliser getElementById, ce qui élimine toute ambiguïté.
0
theclemmm Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   35
 
Merci de ta réponse, je vais m'atteler au travail pour voir si sa marche.
0