[JS] créer des fonction prototype ?
Fermé
walygatou
-
21 mai 2010 à 11:38
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 21 mai 2010 à 17:46
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 21 mai 2010 à 17:46
A voir également:
- [JS] créer des fonction prototype ?
- Fonction si et - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un lien pour partager des photos - Guide
6 réponses
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
21 mai 2010 à 11:48
21 mai 2010 à 11:48
Oui c'est totalement possible et comme tu dis cela allége considérablement la page ;)
D'ailleurs, la fonction que tu donne en exemple est mauvaise ! En effet, si l'utilisateur écrit dans l'input, sa valeur ne peut pas être nulle !
De plus, évite les alerte, c'est soulant, crée plutôt au début de ton formulaire un :
Et à la place de tes alertes tu met :
Pour l'événement, met plutôt un onblur, c'est à dire lorsque l'input perds le focus (lorsque l'utilisateur est dans l'input et qu'il clic hors de ce dernier). A ce moment là, on peut supposer que l'utilisateur à fini sa saisie, et on peut donc vérifié le contenu...
Hésite pas si t'as des questions ;)
(plus d'infos sur les événements JS : http://www.commentcamarche.net/contents/javascript/jsevent.php3)
A+
D'ailleurs, la fonction que tu donne en exemple est mauvaise ! En effet, si l'utilisateur écrit dans l'input, sa valeur ne peut pas être nulle !
De plus, évite les alerte, c'est soulant, crée plutôt au début de ton formulaire un :
<p id="msg" style="color: red; font-weight: bold;"></p>
Et à la place de tes alertes tu met :
document.getElementById('msg').innerHTML = 'Ton message en toute lettre';
Pour l'événement, met plutôt un onblur, c'est à dire lorsque l'input perds le focus (lorsque l'utilisateur est dans l'input et qu'il clic hors de ce dernier). A ce moment là, on peut supposer que l'utilisateur à fini sa saisie, et on peut donc vérifié le contenu...
Hésite pas si t'as des questions ;)
(plus d'infos sur les événements JS : http://www.commentcamarche.net/contents/javascript/jsevent.php3)
A+
Merci de votre réponse si rapide xD
pour ce qui est des alerte oui effectivement c'est soulant, je n'aime pas non plus, j'ai créer un DIV destiné à recueillir les différent msg d'erreur, ici c'etait vraiment pour simplifier l'explication xD
Mais je veux dire celà signifie que écrit comme comme tel celà suffit ?
JS
je peut donc l'utiliser directement sur le onblur de cette facon :
Je pensait qu'il fallait faire une déclaration spéciale pour que celà fonctionne, pour le onblur effectivement ca semble plus logique et plus approprié, merci du conseil xD
encore merci de votre aide
pour ce qui est des alerte oui effectivement c'est soulant, je n'aime pas non plus, j'ai créer un DIV destiné à recueillir les différent msg d'erreur, ici c'etait vraiment pour simplifier l'explication xD
Mais je veux dire celà signifie que écrit comme comme tel celà suffit ?
JS
function maVerif(){ if(this.value.length > 5){ document.getElementById('divErr').innerHTML = 'erreur : trop de caractères'; } }
je peut donc l'utiliser directement sur le onblur de cette facon :
<input type="text" onblur="this.maVerif();" />
Je pensait qu'il fallait faire une déclaration spéciale pour que celà fonctionne, pour le onblur effectivement ca semble plus logique et plus approprié, merci du conseil xD
encore merci de votre aide
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
21 mai 2010 à 12:24
21 mai 2010 à 12:24
Et oui voyons !
Il faut passer un paramétre à ta fonction ! this.Maverif n'existe pas !
Fais ceci :
Ici on passe à ta fonction la valeur de l'input ;)
Pense à la récupéré dans ta fonction comme ceci :
Il faut passer un paramétre à ta fonction ! this.Maverif n'existe pas !
Fais ceci :
<input type="text" onblur="maVerif(this.value);" />
Ici on passe à ta fonction la valeur de l'input ;)
Pense à la récupéré dans ta fonction comme ceci :
function maVerif(verifier){ if(verifier.length > 5){ document.getElementById('divErr').innerHTML = 'erreur : trop de caractères'; } }
oui comme celà ca fonctionne éffectivement, on ne peut donc pas utiliser un this.maVerif(); simplement :( c'est dommage lol ca m'aurait faciliter la tâche lol
j'ai une dernière petite question, mon formulaire est assez long et le div affichant le message d'erreur ce situe en haut du formulaire et on est donc obliger de faire défiler la page vers le haut pour voir l'erreur, est-il possible de lui donner le focus directement, donc dès qu'un message d'erreur est là hop on retourne automatiquement en haut de la page j'ai essayer avec
mais celà ne donne rien
j'ai une dernière petite question, mon formulaire est assez long et le div affichant le message d'erreur ce situe en haut du formulaire et on est donc obliger de faire défiler la page vers le haut pour voir l'erreur, est-il possible de lui donner le focus directement, donc dès qu'un message d'erreur est là hop on retourne automatiquement en haut de la page j'ai essayer avec
document.getElementById('divErr').focus();
mais celà ne donne rien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
Modifié par hack_net le 21/05/2010 à 12:50
Modifié par hack_net le 21/05/2010 à 12:50
Le focus est réservé aux éléments "dynamic" de la page (ceux avec lesquels on peut intéragir) donc pas de .focus(); ;)
Par contre, petite astuce toute bête, tu ajoute dans l'adresse #id_de_ta_div après ta_page.php (ce qui donne ta_page.php#id_de_ta_div), et hop tadam :d
Par contre je crains que cela rafraichisse la page :s
Sinon, tu fait "flotter" ta div et tu la fait circuler en même temps que ta page (pour cela, CSS ;))
Ce n'est pas parce que un chemin prend la direction que l'on souhaite, qu'il nous amène où l'on veut.
La colère envers autrui reflète toujours la tristesse interne.
Rien n'est blanc ou noir, tout est gris clair ou gris foncé.
Le silence et la pensée sont les armes les plus puissantes.
Par contre, petite astuce toute bête, tu ajoute dans l'adresse #id_de_ta_div après ta_page.php (ce qui donne ta_page.php#id_de_ta_div), et hop tadam :d
Par contre je crains que cela rafraichisse la page :s
Sinon, tu fait "flotter" ta div et tu la fait circuler en même temps que ta page (pour cela, CSS ;))
Ce n'est pas parce que un chemin prend la direction que l'on souhaite, qu'il nous amène où l'on veut.
La colère envers autrui reflète toujours la tristesse interne.
Rien n'est blanc ou noir, tout est gris clair ou gris foncé.
Le silence et la pensée sont les armes les plus puissantes.
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
21 mai 2010 à 17:46
21 mai 2010 à 17:46
Pour faire +/- ce que tu cherches à faire, tu peux créer une fonction qui prend en argument un objet représentant le formulaire.
Et la déclaration de ta fonction :
<form method="post" action="cible.php" onsubmit="return verifier(this);">
Et la déclaration de ta fonction :
function verifier(form) { alert('ok'); }Dans ta fonction, la variable form représente donc ton formulaire.