Je suis bloqu=E9 depuis un bon moment alors je fais appel =E0 vos
services...
Je souhaiterais, si la donn=E9e d'un champ de formulaire ne correspond
pas =E0 ce que j'attend, que l'utilisateur reste bloqu=E9 sur le champ en
question. Je fais aussi un contr=F4le des caract=E8res saisis alors voici
mon code (dissoci=E9 suivant le navigateur) :
// Validation des donn=E9es.
function demarrage_controles() {
if (FF) {
document.captureEvents(Event.KEYPRESS);
document.captureEvents(Event.CHANGE);
document.onkeypress =3D process_keypress;
document.onchange =3D process_change;
} else {
document.onkeypress =3D process_keypress;
for (i=3D0; i < document.forms[0].elements.length ; i++) {
document.forms[0].elements[i].attachEvent("onchange",process_change);
}
}
}
// On n'accepte que des chiffres.
function process_keypress(e) {
if (FF) {
if (e.target.tagName =3D=3D "input" && !((e.which > 47 &&
e=2Ewhich < 58) || e.which =3D=3D 0 || e.which =3D=3D 8 || e.which =3D=3D 1=
3)) {
return false;
}
} else {
if ((window.event.keyCode < 47 || window.event.keyCode >
58) && window.event.keyCode !=3D 13) {
return false;
}
}
}
// On compare au dernier cumul.
function process_change(e) {
if (FF) {
if (e.target.id.substr(0,3) =3D=3D "var" && e.target.alt !=3D "=
")
{
if (Number(e.target.value) < Number(e.target.alt)) {
alert ("Vous ne pouvez pas saisir de donn=E9es
inf=E9rieures au dernier cumul !");
e.preventDefault();
e.stopPropagation();
e.returnValue=3Dfalse;
}
}
} else {
if (window.event.srcElement.id.substr(0,3) =3D=3D "var" &&
window.event.srcElement.alt !=3D "") {
if (Number(window.event.srcElement.value) <
Number(window.event.srcElement.alt)) {
alert ("Vous ne pouvez pas saisir de donn=E9es
inf=E9rieures au dernier cumul !");
window.event.returnValue =3D false;
}
}
}
}
Mon probl=E8me vient de la fonction process_change sous Firefox o=F9 tout
ce que j'ai mis (stopPropagation etc...) ne sert =E0 rien et
l'utilisateur passe bien au champ suivant (le message est quand m=EAme
affich=E9). En revanche, sous IE, le window.event.returnValue =3D false
fonctionne correctement.
function process_change(e) { e.preventDefault(); e.stopPropagation(); preventDefault() et stopPropagation() c'est pas pour le modèle traditionnel.
e.returnValueúlse; Ca c'est pour IE, donc pas grand chose à faire dans le test if (FF).
Mon problème vient de la fonction process_change sous Firefox où tout ce que j'ai mis (stopPropagation etc...) ne sert à rien et
Logiquement, juste une return false; devrait faire l'affaire. false pour l'annuler, true pour le valider.
-- laurent
David BERCOT
Bonjour,
Laurent Vilday wrote:
document.onchange = process_change;
Event attribué en modèle traditionnel.
function process_change(e) { e.preventDefault(); e.stopPropagation(); preventDefault() et stopPropagation() c'est pas pour le modèle traditio nnel.
Je suppose, quand tu parles de modèle traditionnel, qu'il s'agit du DOM au sens W3C et pas Microsoft ? Si c'est bien le cas, les fonctions preventDefault et StopPropagation s'appliquent bien sur ce domaine, non ?
e.returnValueúlse; Ca c'est pour IE, donc pas grand chose à faire dans le test if (FF).
Là encore, je ne suis pas d'accord ;-) En IE classique, on fait un returnvalue false (le returnValue avec un 'V' majuscule, c'est bien pour Firefox) !
Mon problème vient de la fonction process_change sous Firefox où to ut ce que j'ai mis (stopPropagation etc...) ne sert à rien et
Logiquement, juste une return false; devrait faire l'affaire. false pour l'annuler, true pour le valider.
Ben justement, ça ne marche pas ! Dans un cas extrême, en mettant ça : <input id="var01" name="var01" onchange="return false;"/> ça marche bien avec IE, mais pas avec Firefox !!! Alors là, je dois reconnaître que je ne comprends pas du tout...
David.
Bonjour,
Laurent Vilday wrote:
document.onchange = process_change;
Event attribué en modèle traditionnel.
function process_change(e) {
e.preventDefault();
e.stopPropagation();
preventDefault() et stopPropagation() c'est pas pour le modèle traditio nnel.
Je suppose, quand tu parles de modèle traditionnel, qu'il s'agit du
DOM au sens W3C et pas Microsoft ?
Si c'est bien le cas, les fonctions preventDefault et StopPropagation
s'appliquent bien sur ce domaine, non ?
e.returnValue=false;
Ca c'est pour IE, donc pas grand chose à faire dans le test if (FF).
Là encore, je ne suis pas d'accord ;-)
En IE classique, on fait un returnvalue false (le returnValue avec un
'V' majuscule, c'est bien pour Firefox) !
Mon problème vient de la fonction process_change sous Firefox où to ut
ce que j'ai mis (stopPropagation etc...) ne sert à rien et
Logiquement, juste une return false; devrait faire l'affaire.
false pour l'annuler, true pour le valider.
Ben justement, ça ne marche pas !
Dans un cas extrême, en mettant ça :
<input id="var01" name="var01" onchange="return false;"/>
ça marche bien avec IE, mais pas avec Firefox !!!
Alors là, je dois reconnaître que je ne comprends pas du tout...
function process_change(e) { e.preventDefault(); e.stopPropagation(); preventDefault() et stopPropagation() c'est pas pour le modèle traditio nnel.
Je suppose, quand tu parles de modèle traditionnel, qu'il s'agit du DOM au sens W3C et pas Microsoft ? Si c'est bien le cas, les fonctions preventDefault et StopPropagation s'appliquent bien sur ce domaine, non ?
e.returnValueúlse; Ca c'est pour IE, donc pas grand chose à faire dans le test if (FF).
Là encore, je ne suis pas d'accord ;-) En IE classique, on fait un returnvalue false (le returnValue avec un 'V' majuscule, c'est bien pour Firefox) !
Mon problème vient de la fonction process_change sous Firefox où to ut ce que j'ai mis (stopPropagation etc...) ne sert à rien et
Logiquement, juste une return false; devrait faire l'affaire. false pour l'annuler, true pour le valider.
Ben justement, ça ne marche pas ! Dans un cas extrême, en mettant ça : <input id="var01" name="var01" onchange="return false;"/> ça marche bien avec IE, mais pas avec Firefox !!! Alors là, je dois reconnaître que je ne comprends pas du tout...
David.
David BERCOT
Re-bonjour,
Voici un exemple de page peut être plus parlant : <html> <body> <form id="vu"> <input id="var01" name="var01" size="5" onchange="return false;"/> </form> </body> </html>
On ne peut pas faire plus simple, hein ;-)
Eh bien ça marche bien sous IE (si je change la valeur, je ne sors pas de la zone "input" mais pas sous Firefox (v1.5.0.4) !!!
Alors là, je n'y comprends rien !!!
David.
Re-bonjour,
Voici un exemple de page peut être plus parlant :
<html>
<body>
<form id="vu">
<input id="var01" name="var01" size="5" onchange="return false;"/>
</form>
</body>
</html>
On ne peut pas faire plus simple, hein ;-)
Eh bien ça marche bien sous IE (si je change la valeur, je ne sors pas
de la zone "input" mais pas sous Firefox (v1.5.0.4) !!!
Voici un exemple de page peut être plus parlant : <html> <body> <form id="vu"> <input id="var01" name="var01" size="5" onchange="return false;"/> </form> </body> </html>
On ne peut pas faire plus simple, hein ;-)
Eh bien ça marche bien sous IE (si je change la valeur, je ne sors pas de la zone "input" mais pas sous Firefox (v1.5.0.4) !!!
Alors là, je n'y comprends rien !!!
David.
ASM
Comme de ttes façons tout ce que vous pouvez tous raccontez ne fonctionnera pas dans NC4.5, voici :
Et ce script sert à quoi ? Quel est le rapport avec mon onchange ? Mon but est, si la nouvelle valeur ne correspond pas à ce que j'attends, que l'utilisateur reste bloqué sur la zone en question...
David.
Comme de ttes façons tout ce que vous pouvez tous raccontez ne
fonctionnera pas dans NC4.5, voici :
Euh, je ne vois pas bien le rapport ????
Mon but est que cela fonctionne avec IE 6 et Firefox 1.5.
Pour le reste, on verra plus tard...
Et ce script sert à quoi ? Quel est le rapport avec mon onchange ?
Mon but est, si la nouvelle valeur ne correspond pas à ce que
j'attends, que l'utilisateur reste bloqué sur la zone en question...
Et ce script sert à quoi ? Quel est le rapport avec mon onchange ? Mon but est, si la nouvelle valeur ne correspond pas à ce que j'attends, que l'utilisateur reste bloqué sur la zone en question...
David.
ASM
On ne peut pas faire plus simple, hein ;-)
ni moins : "ça ne veut rien dire"
Eh bien ça marche bien sous IE (si je change la valeur, je ne sors pas de la zone "input" mais pas sous Firefox (v1.5.0.4) !!!
Alors là, je n'y comprends rien !!!
Y a rien à comprendre c'est de la bouse à M$
La preuve : ça ne fonctionne pas avec IE Mac ni avec Safari
-- Stephane Moriaux et son [moins] vieux Mac
On ne peut pas faire plus simple, hein ;-)
ni moins : "ça ne veut rien dire"
Eh bien ça marche bien sous IE (si je change la valeur, je ne sors pas
de la zone "input" mais pas sous Firefox (v1.5.0.4) !!!
Alors là, je n'y comprends rien !!!
Y a rien à comprendre c'est de la bouse à M$
La preuve : ça ne fonctionne pas avec IE Mac ni avec Safari
Effectivement, ça fonctionne aussi chez moi. Et c'est très bien sauf que ce n'est pas ce que je veux ! En effet, je souhaite que l'utilisateur soit bloqué sur le champ en question, pas qu'il le quitte mais que sa valeur soit réinitilisée...
Effectivement, ça fonctionne aussi chez moi. Et c'est très bien sauf
que ce n'est pas ce que je veux !
En effet, je souhaite que l'utilisateur soit bloqué sur le champ en
question, pas qu'il le quitte mais que sa valeur soit réinitilisée...
Effectivement, ça fonctionne aussi chez moi. Et c'est très bien sauf que ce n'est pas ce que je veux ! En effet, je souhaite que l'utilisateur soit bloqué sur le champ en question, pas qu'il le quitte mais que sa valeur soit réinitilisée...
David.
ASM
Mon but est, si la nouvelle valeur ne correspond pas à ce que j'attends, que l'utilisateur reste bloqué sur la zone en question...
Là, je vois pas comment tu peux faire ça ? (à part un alert et remise en focus de l'input si condition non remplie)
Les tabulations ni les clics souris ne fonctionnent plus avec ta ficelle sur IE Win ?
-- Stephane Moriaux et son [moins] vieux Mac
Mon but est, si la nouvelle valeur ne correspond pas à ce que
j'attends, que l'utilisateur reste bloqué sur la zone en question...
Là, je vois pas comment tu peux faire ça ?
(à part un alert et remise en focus de l'input si condition non remplie)
Les tabulations ni les clics souris ne fonctionnent plus avec ta ficelle
sur IE Win ?