Bonjour,
J'ai un script basique qui calcule le double d'un nombre saisi dans un
formulaire
________________________________________________________________________________
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
<input type="button" name="Submit" value="calcul"
onClick="document.calcul.double.value=document.calcul.nombre.value*2">
</p>
</form>
_______________________________________________________________________________
Pas de pb avec IE mais erreur avec Firefox et je ne la trouve pas.
Bonjour,
J'ai un script basique qui calcule le double d'un nombre saisi dans un
formulaire
________________________________________________________________________________
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
<input type="button" name="Submit" value="calcul"
onClick="document.calcul.double.value=document.calcul.nombre.value*2">
</p>
</form>
_______________________________________________________________________________
Pas de pb avec IE mais erreur avec Firefox et je ne la trouve pas.
Bonjour,
J'ai un script basique qui calcule le double d'un nombre saisi dans un
formulaire
________________________________________________________________________________
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
<input type="button" name="Submit" value="calcul"
onClick="document.calcul.double.value=document.calcul.nombre.value*2">
</p>
</form>
_______________________________________________________________________________
Pas de pb avec IE mais erreur avec Firefox et je ne la trouve pas.
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
en raccourci on fait (si tout se passe dans le même form) :
onClick="double.value=nombre.value*2">
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
en raccourci on fait (si tout se passe dans le même form) :
onClick="double.value=nombre.value*2">
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
en raccourci on fait (si tout se passe dans le même form) :
onClick="double.value=nombre.value*2">
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
C'est pas pour être certain d'être vraiment compris mais c'est
simplement pour lui passer du code correct.
La notation en référençant directement le name ou le ID d'un élément est
une très mauvaise façon de faire, bien que ça passe à peu pres bien dans
les cas simples. D'ailleurs quand on essaye de faire ça, mon firefox
génère un warning dans la console : "Elément référencé par son ID/NAME
dans le contexte global. Utilisez la propriété standard du W3C
document.getElementById() à la place."
Quid du morceau suivant, simpliste à souhait et certes un peu bete, mais
c'est autorisé.
<script>
var double = true;
var nombre = false;
</script>
<input name="double" type="text" id="double">
<input name="nombre" type="text" id="nombre"
onclick="double.value=nombre.value*2">
Qui est référencé par le nom "double" ou le nom "nombre" maintenant
quand je clique ??
Le mieux, à mon sens, c'est de juste créer les éléments HTML sans aucun
"onclick", "onmouseover", "onkeyup" ni autre attributs du même accabit
qui n'ont rien à faire avec la structure HTML et ensuite d'ajouter les
événements javascript par dessus. Ca permet de séparer le HTML (la
structure) du javascript (la logique).
<script>
/**
* Petit raccourci,
* j'aime pas écrire document.getElementById() en permanence
*/
function $(x) { return document.getElementById(x); }
/**
* J'utilise ici la function addEvent() pour ajouter un événement,
* mais je laisse à chacun le soin de trouver sa version préférée,
* il y a énormément de littérature sur la question.
*/
addEvent(window, "load", starting);
function starting(evt) {
addEvent($('nombre'), 'click', doubleNombre);
}
function doubleNombre(evt) {
$('double').value = $('nombre').value * 2;
}
</script>
<form>
<input type="text" id="nombre">
x 2 = <input type="text" id="double">
</form>
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
C'est pas pour être certain d'être vraiment compris mais c'est
simplement pour lui passer du code correct.
La notation en référençant directement le name ou le ID d'un élément est
une très mauvaise façon de faire, bien que ça passe à peu pres bien dans
les cas simples. D'ailleurs quand on essaye de faire ça, mon firefox
génère un warning dans la console : "Elément référencé par son ID/NAME
dans le contexte global. Utilisez la propriété standard du W3C
document.getElementById() à la place."
Quid du morceau suivant, simpliste à souhait et certes un peu bete, mais
c'est autorisé.
<script>
var double = true;
var nombre = false;
</script>
<input name="double" type="text" id="double">
<input name="nombre" type="text" id="nombre"
onclick="double.value=nombre.value*2">
Qui est référencé par le nom "double" ou le nom "nombre" maintenant
quand je clique ??
Le mieux, à mon sens, c'est de juste créer les éléments HTML sans aucun
"onclick", "onmouseover", "onkeyup" ni autre attributs du même accabit
qui n'ont rien à faire avec la structure HTML et ensuite d'ajouter les
événements javascript par dessus. Ca permet de séparer le HTML (la
structure) du javascript (la logique).
<script>
/**
* Petit raccourci,
* j'aime pas écrire document.getElementById() en permanence
*/
function $(x) { return document.getElementById(x); }
/**
* J'utilise ici la function addEvent() pour ajouter un événement,
* mais je laisse à chacun le soin de trouver sa version préférée,
* il y a énormément de littérature sur la question.
*/
addEvent(window, "load", starting);
function starting(evt) {
addEvent($('nombre'), 'click', doubleNombre);
}
function doubleNombre(evt) {
$('double').value = $('nombre').value * 2;
}
</script>
<form>
<input type="text" id="nombre">
x 2 = <input type="text" id="double">
</form>
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
C'est pas pour être certain d'être vraiment compris mais c'est
simplement pour lui passer du code correct.
La notation en référençant directement le name ou le ID d'un élément est
une très mauvaise façon de faire, bien que ça passe à peu pres bien dans
les cas simples. D'ailleurs quand on essaye de faire ça, mon firefox
génère un warning dans la console : "Elément référencé par son ID/NAME
dans le contexte global. Utilisez la propriété standard du W3C
document.getElementById() à la place."
Quid du morceau suivant, simpliste à souhait et certes un peu bete, mais
c'est autorisé.
<script>
var double = true;
var nombre = false;
</script>
<input name="double" type="text" id="double">
<input name="nombre" type="text" id="nombre"
onclick="double.value=nombre.value*2">
Qui est référencé par le nom "double" ou le nom "nombre" maintenant
quand je clique ??
Le mieux, à mon sens, c'est de juste créer les éléments HTML sans aucun
"onclick", "onmouseover", "onkeyup" ni autre attributs du même accabit
qui n'ont rien à faire avec la structure HTML et ensuite d'ajouter les
événements javascript par dessus. Ca permet de séparer le HTML (la
structure) du javascript (la logique).
<script>
/**
* Petit raccourci,
* j'aime pas écrire document.getElementById() en permanence
*/
function $(x) { return document.getElementById(x); }
/**
* J'utilise ici la function addEvent() pour ajouter un événement,
* mais je laisse à chacun le soin de trouver sa version préférée,
* il y a énormément de littérature sur la question.
*/
addEvent(window, "load", starting);
function starting(evt) {
addEvent($('nombre'), 'click', doubleNombre);
}
function doubleNombre(evt) {
$('double').value = $('nombre').value * 2;
}
</script>
<form>
<input type="text" id="nombre">
x 2 = <input type="text" id="double">
</form>
Mais cela ne répond pas à ma question, à savoir qu'y a-t-il de faux
dans mon code précédent ?
Firefox ne reconnait-il pas les noms des champs ?
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
<input type="button" name="Submit" value="calcul"
onClick="document.calcul.double.value=document.calcul.nombre.value*2">
</p>
</form>
Javascript est bien un langage avec syntaxe pointée.
J'ai aussi lu les posts suivants.
C'est bien sûr intéressant et cela marche surement, mais c'est comme
toujours avec les puristes, il faut utiliser 3 fonctions et 10 lignes
quand une seule (moins élégante je le concède) suffirait.
Mais cela ne répond pas à ma question, à savoir qu'y a-t-il de faux
dans mon code précédent ?
Firefox ne reconnait-il pas les noms des champs ?
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
<input type="button" name="Submit" value="calcul"
onClick="document.calcul.double.value=document.calcul.nombre.value*2">
</p>
</form>
Javascript est bien un langage avec syntaxe pointée.
J'ai aussi lu les posts suivants.
C'est bien sûr intéressant et cela marche surement, mais c'est comme
toujours avec les puristes, il faut utiliser 3 fonctions et 10 lignes
quand une seule (moins élégante je le concède) suffirait.
Mais cela ne répond pas à ma question, à savoir qu'y a-t-il de faux
dans mon code précédent ?
Firefox ne reconnait-il pas les noms des champs ?
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
<input type="button" name="Submit" value="calcul"
onClick="document.calcul.double.value=document.calcul.nombre.value*2">
</p>
</form>
Javascript est bien un langage avec syntaxe pointée.
J'ai aussi lu les posts suivants.
C'est bien sûr intéressant et cela marche surement, mais c'est comme
toujours avec les puristes, il faut utiliser 3 fonctions et 10 lignes
quand une seule (moins élégante je le concède) suffirait.
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
en raccourci on fait (si tout se passe dans le même form) :
onClick="double.value=nombre.value*2">
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
C'est pas pour être certain d'être vraiment compris mais c'est
simplement pour lui passer du code correct.
(...)
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
en raccourci on fait (si tout se passe dans le même form) :
onClick="double.value=nombre.value*2">
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
C'est pas pour être certain d'être vraiment compris mais c'est
simplement pour lui passer du code correct.
(...)
<form action="" method="post" name="calcul" id="calcul">
<p>Votre premier nombre :
<input name="nombre" type="text" id="nombre">
</p>
<p>Voici son double :
<input name="double" type="text" id="double">
en raccourci on fait (si tout se passe dans le même form) :
onClick="double.value=nombre.value*2">
Pour etre vraiment certain d'etre compris :
onClick="with(document.forms['calcul']) {
elements['double'].value = elements['nombre'].value*2; }">
C'est pas pour être certain d'être vraiment compris mais c'est
simplement pour lui passer du code correct.
(...)
Pour ma part, je préfère, et de loin, écrire ceci :
onClick="this.form.double.value=this.form.nombre.value*2">
Compatibilité assurée, objets garantis ==> le bonheur, quoi !
Rappel pour les néophytes :
"this.form" pointe toujours vers l'objet formulaire, étant
sous-entendu que "this" représente un champ de type "input, textarea,
etc..."
Pour ma part, je préfère, et de loin, écrire ceci :
onClick="this.form.double.value=this.form.nombre.value*2">
Compatibilité assurée, objets garantis ==> le bonheur, quoi !
Rappel pour les néophytes :
"this.form" pointe toujours vers l'objet formulaire, étant
sous-entendu que "this" représente un champ de type "input, textarea,
etc..."
Pour ma part, je préfère, et de loin, écrire ceci :
onClick="this.form.double.value=this.form.nombre.value*2">
Compatibilité assurée, objets garantis ==> le bonheur, quoi !
Rappel pour les néophytes :
"this.form" pointe toujours vers l'objet formulaire, étant
sous-entendu que "this" représente un champ de type "input, textarea,
etc..."
je vois que je suis touj aussi bien interprété :-(
La notation en référençant directement le name ou le ID d'un élément
est une très mauvaise façon de faire
Bien entendu, je ne suis pas du tout d'accord :
- 1 - il n'y a pas que le DOM dans la vie
- 2 - les collections (links, images, forms ...) existent toujours
- 3 - les noms sont autorisés pour les éléments de formulaires
(si je ne m'abuse, le W3C le précise bien)
- 4 - Quid des vieux brouteurs ?
(il parait que dans cetaines régions du monde, dont les US
une frange non vraiment négligeable d'internautes
utilise encore des NC4.x)
- 5 - Après tout FF n'émet que des "warnings"
(il ne fait que militer pour le W3C)
Mais c'eût été sympa de donner une fonction pour le addEvent()
celle que j'ai récupérée (via google)
ne fonctionne pas avec mon IE (Mac) :-(
document.forms[0].elements['nombre'].onchange = function(){
document.forms[0].doubleNombre.value=this.value*2; }
je vois que je suis touj aussi bien interprété :-(
La notation en référençant directement le name ou le ID d'un élément
est une très mauvaise façon de faire
Bien entendu, je ne suis pas du tout d'accord :
- 1 - il n'y a pas que le DOM dans la vie
- 2 - les collections (links, images, forms ...) existent toujours
- 3 - les noms sont autorisés pour les éléments de formulaires
(si je ne m'abuse, le W3C le précise bien)
- 4 - Quid des vieux brouteurs ?
(il parait que dans cetaines régions du monde, dont les US
une frange non vraiment négligeable d'internautes
utilise encore des NC4.x)
- 5 - Après tout FF n'émet que des "warnings"
(il ne fait que militer pour le W3C)
Mais c'eût été sympa de donner une fonction pour le addEvent()
celle que j'ai récupérée (via google)
ne fonctionne pas avec mon IE (Mac) :-(
document.forms[0].elements['nombre'].onchange = function(){
document.forms[0].doubleNombre.value=this.value*2; }
je vois que je suis touj aussi bien interprété :-(
La notation en référençant directement le name ou le ID d'un élément
est une très mauvaise façon de faire
Bien entendu, je ne suis pas du tout d'accord :
- 1 - il n'y a pas que le DOM dans la vie
- 2 - les collections (links, images, forms ...) existent toujours
- 3 - les noms sont autorisés pour les éléments de formulaires
(si je ne m'abuse, le W3C le précise bien)
- 4 - Quid des vieux brouteurs ?
(il parait que dans cetaines régions du monde, dont les US
une frange non vraiment négligeable d'internautes
utilise encore des NC4.x)
- 5 - Après tout FF n'émet que des "warnings"
(il ne fait que militer pour le W3C)
Mais c'eût été sympa de donner une fonction pour le addEvent()
celle que j'ai récupérée (via google)
ne fonctionne pas avec mon IE (Mac) :-(
document.forms[0].elements['nombre'].onchange = function(){
document.forms[0].doubleNombre.value=this.value*2; }
- 2 - les collections (links, images, forms ...) existent toujours
<input type="text" name="window" id="window">
Et il y en a des
tonnes j'en suis persuadé, <input id="document", id="this", etc.
- 3 - les noms sont autorisés pour les éléments de formulaires
(si je ne m'abuse, le W3C le précise bien)
Humm ? Ca ne me dit rien du tout ça, tu aurais une référence stp ?
- 4 - Quid des vieux brouteurs ?
Il faut passer en mode "traditionnel" element.onclick = function
Mais tu as beaucoup moins de latitude pour ajouter plusieurs évènements
similaires sur le même élément.
// on sauvegarde l'ancien événement
- 5 - Après tout FF n'émet que des "warnings"
(il ne fait que militer pour le W3C)
Certes, mais pourquoi conserver des "erreurs" quand on peut les éviter ?
celle que j'ai récupérée (via google)
ne fonctionne pas avec mon IE (Mac) :-(
IE Mac 5.2 ne fonctionne que en version traditionnelle
http://www.quirksmode.org/js/events_compinfo.html#link6
Tu peux démarrer un thread si tu crois que ca vaut la peine d'être
approfondi.
Je suis sur qu'il y a plein de personnes ici qui ont plein
de choses à dire sur la gestion des événements.
Mais je confesse ne jamais m'être penché sur le problème des MAC, bien
assez de problèmes comme ça.
- 2 - les collections (links, images, forms ...) existent toujours
<input type="text" name="window" id="window">
Et il y en a des
tonnes j'en suis persuadé, <input id="document", id="this", etc.
- 3 - les noms sont autorisés pour les éléments de formulaires
(si je ne m'abuse, le W3C le précise bien)
Humm ? Ca ne me dit rien du tout ça, tu aurais une référence stp ?
- 4 - Quid des vieux brouteurs ?
Il faut passer en mode "traditionnel" element.onclick = function
Mais tu as beaucoup moins de latitude pour ajouter plusieurs évènements
similaires sur le même élément.
// on sauvegarde l'ancien événement
- 5 - Après tout FF n'émet que des "warnings"
(il ne fait que militer pour le W3C)
Certes, mais pourquoi conserver des "erreurs" quand on peut les éviter ?
celle que j'ai récupérée (via google)
ne fonctionne pas avec mon IE (Mac) :-(
IE Mac 5.2 ne fonctionne que en version traditionnelle
http://www.quirksmode.org/js/events_compinfo.html#link6
Tu peux démarrer un thread si tu crois que ca vaut la peine d'être
approfondi.
Je suis sur qu'il y a plein de personnes ici qui ont plein
de choses à dire sur la gestion des événements.
Mais je confesse ne jamais m'être penché sur le problème des MAC, bien
assez de problèmes comme ça.
- 2 - les collections (links, images, forms ...) existent toujours
<input type="text" name="window" id="window">
Et il y en a des
tonnes j'en suis persuadé, <input id="document", id="this", etc.
- 3 - les noms sont autorisés pour les éléments de formulaires
(si je ne m'abuse, le W3C le précise bien)
Humm ? Ca ne me dit rien du tout ça, tu aurais une référence stp ?
- 4 - Quid des vieux brouteurs ?
Il faut passer en mode "traditionnel" element.onclick = function
Mais tu as beaucoup moins de latitude pour ajouter plusieurs évènements
similaires sur le même élément.
// on sauvegarde l'ancien événement
- 5 - Après tout FF n'émet que des "warnings"
(il ne fait que militer pour le W3C)
Certes, mais pourquoi conserver des "erreurs" quand on peut les éviter ?
celle que j'ai récupérée (via google)
ne fonctionne pas avec mon IE (Mac) :-(
IE Mac 5.2 ne fonctionne que en version traditionnelle
http://www.quirksmode.org/js/events_compinfo.html#link6
Tu peux démarrer un thread si tu crois que ca vaut la peine d'être
approfondi.
Je suis sur qu'il y a plein de personnes ici qui ont plein
de choses à dire sur la gestion des événements.
Mais je confesse ne jamais m'être penché sur le problème des MAC, bien
assez de problèmes comme ça.