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

Fermé
theclemmm Messages postés 71 Date d'inscription mardi 16 octobre 2012 Statut Membre Dernière intervention 29 septembre 2016 - 24 nov. 2014 à 23:57
theclemmm Messages postés 71 Date d'inscription mardi 16 octobre 2012 Statut Membre Dernière intervention 29 septembre 2016 - 26 nov. 2014 à 01:19
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
25 nov. 2014 à 00:29
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 mardi 16 octobre 2012 Statut Membre Dernière intervention 29 septembre 2016 35
26 nov. 2014 à 01:19
Merci de ta réponse, je vais m'atteler au travail pour voir si sa marche.
0