Routine qui ne veut rien savoir... [Résolu]

Signaler
Messages postés
35
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
24 septembre 2012
-
Messages postés
35
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
24 septembre 2012
-
Bonjour à tous!

Qui peut me dire pour quoi cette pauvre routine ne fonctionne pas sous FF? Merci d'avance.

<script language="javascript1.5">
function repete_txt(a)
{
document.repete.elements["infos1"].value=document.formulaire.elements["infos"].value;
}
function repete_txt(b)
{
document.repete.elements["liste1"].value=document.formulaire.elements["liste"].value;
}
</script>
</head>

<form name"formulaire">
Saisie 1<textarea cols="40" name="infos" id="infos" value="" onkeyup="repete_txt(this.value)"></textarea>
Saisie 2<select onChange="repete_txt(this.value);" name="liste" id="liste">
<option value="layer1">layer1</option>
<option value="layer2">layer2</option>
</select>
<form name="repete">
Répète 1
Répète 2
</form>



Amiga user for ever...

8 réponses

Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
Bien le bonjour,
il y a plusieurs petit soucis, qui mis bout-a-bout fond que ça ne marche pas.
Premier soucis:
le formulaire ayant pour nom "formulaire" est mal définit:
<form name"formulaire">

doit devenir
<form name="formulaire">

Ensuite il n'est pas fermé, du coup fatalement, ça plante un peu :
<form name="repete">

devient donc
</form><form name="repete">


Après ça doit fonctionné, ou plutôt je devrais dire, je n'ai pas d'erreur...

[o-_-o]
Messages postés
35
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
24 septembre 2012

Humm...Si, fonctionne, mais comme j'ai deux fonctions qui tapent dans le même form source, ne pas nommer les fonctions pareil...
Dans mon cas, function repete_txt(a) et function repete_txt(b) => function repete_select(a) et function repete_txt(b).
Les appels sur événement ne se mordent pas entre eux.

Merci TychoBrahe de pas avoir vu ça pour un codeur nolife comme toi...
D'ailleurs, ton pseudo me gène...

Merci par contre Zobibol qui m'a bien éclairci certains points et permit de les corriger!


Amiga user for ever...
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Les grosses grosses erreurs :
[list]
[*] language="javascript1.5": Non, c'est type="text/javascript"
[*] document.repete : Non, document ne contient pas de propriété nommée repete. Tu as du confondre avec document.forms['repete']
[*] Le premier formulaire n'est pas fermé, du coup tu as un formulaire dans un formulaire, clairement ça fout la merde.
/list

Les trucs à changer :
[list]
[*] Encapsule ton JavaScript dans une fonction. Le mieux est que ce soit dans uen fonction lancée après le chargement total de la page, mais au pire une fonction anonyme auto-appelante (en fin de page du coup) ça limite la casse.
[*] Du coup, au lieux d'utiliser les vieux trucs html tout moches tels que onchange, onkeyup etc, tu associe, dans ton JavaScript, une fonction de rappel à un évènement. Pour ça, addEventListener() est ton amie.
[*] Pourquoi ne pas utiliser les id de tes éléments ? Ce serait bien plus simple.
/list
Messages postés
35
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
24 septembre 2012

Oui, j'ai vu, une fois posté, qu'il manquait un /form et un =...
Ensuite, je viens de me rappeler que pour un select, il faut spécifier le options[x] ou options[document.form.getElementById('id').selectedIndex]...
Ca n'empêche que ca ne marche toujours pas...


Amiga user for ever...
Messages postés
35
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
24 septembre 2012

Vi, c'est du text/javascript... Corrigé.
Pour les document.machin, corrigé.
Le form select fonctionne et répercute bien son value dans le form text approprié. L'autre form ne fonctionne toujours pas.
Je peux pas trop balancer de fonction auto-appelante n'importe où car c'est un bout de code qui va dans un source complet en php déjà pas mal fleuri!
Le plus simple me convient, me fiche si c'est obsolète ou si c'est moche, le principale est que cela fonctionne et est le plus simple possible.
Pour les ID, tu as raison, c'est ce que j'ai fait: document.getElementById('infos'), mieux...

Amiga user for ever...
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Je peux pas trop balancer de fonction auto-appelante n'importe où car c'est un bout de code qui va dans un source complet en php déjà pas mal fleuri!

Dude, le but d'une fonction anonyme auto-appelante est justement d'assurer une bonne compatibilité avec tous les autres scripts provenant d'autres sources.

Le plus simple me convient, me fiche si c'est obsolète ou si c'est moche

On ne va pas s'entendre toi et moi ^^

le principale est que cela fonctionne et est le plus simple possible.

Tu veux faire simple ? Utilise jQuery ! Et pour faire encore plus simple tu peux aussi t'ammuser avec JsViews.
Messages postés
35
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
24 septembre 2012

Geek, tes remarques sont bien sympathiques, j'ai malheureusement pas trop le temps de m'amuser, je prend ce qui me tombe sous le clavier.
Les modes sont pour ceux qui ont du temps à perdre, l’évolution informatique est bien sympa mais si je dois tout me retaper la doc javascript jquery ou autre jsviews, pas fini! Déjà assez à faire avec php5. Pas la peine de tenter de réinventer la roue, suffit de prendre ce qui existe déjà (le chemin le plus court de a à b est une droite...). Tu nolifes à coder, bien t'en prend et je te félicite. Pas mon cas.
Je me pencherai tout de même, à tête reposée, sur les fonctions anonymes auto-appelante.
Merci tout de même de ton intervention.


Amiga user for ever...
Messages postés
35
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
24 septembre 2012

Punaise! Beau tourner en long large et travers, marche po!
Ni sous FF ni sous IE! Les événements ne fonctionnent pas ou bien?
Quelqu'un a une idée s'yous plait?
<script type="text/javascript" >
function repete_txt()
{
document.getElementById('infos1').value=document.getElementById('infos').value
}
</script>

<form name="formulaire">
Saisie 1
</form>
<form name="repete">
Répète 1
</form>


Amiga user for ever...