Limiter taille dans un formulaire
Résolu/Fermé
A voir également:
- Limiter taille dans un formulaire
- Comment réduire la taille d'un fichier - Guide
- Formulaire de réclamation facebook - Guide
- Reduire taille photo - Guide
- Afficher taille dossier windows - Guide
- Taille iphone 14 - Guide
6 réponses
Ozimandias
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
1 juil. 2009 à 09:48
1 juil. 2009 à 09:48
Tu souhaite le tester en cours de frappe ou après la frappe?
Déjà pour limiter le nombre de caractère maximum, tu peux mettre:
<input type="text" name="mois" size="4" maxlength="4" value=""/>
Comme ça ton input fait 4 caractères de large (size="4") et on ne peut taper plus de 4 caractères (maxlength="4")
Ensuite pour tester en direct le nombre de caractère il faut passer par javascript:
ce code est à placer entre les balises HEAD de ta page (il teste pour 4 caractères, si tu veux tester les deux champs, dis le moi et je modifierais)
ensuite dans ton PHP, ton input:
<input type="text" name="mois" size="4" maxlength="4" value="" onkeypress="test_input(this.value)" onkeyup="test_input(this.value)" /><span id="zone_avert"></span>
@+
Déjà pour limiter le nombre de caractère maximum, tu peux mettre:
<input type="text" name="mois" size="4" maxlength="4" value=""/>
Comme ça ton input fait 4 caractères de large (size="4") et on ne peut taper plus de 4 caractères (maxlength="4")
Ensuite pour tester en direct le nombre de caractère il faut passer par javascript:
ce code est à placer entre les balises HEAD de ta page (il teste pour 4 caractères, si tu veux tester les deux champs, dis le moi et je modifierais)
<script language="javascript" type="text/javascript"> <!-- function test_input(nombre){ avertissement = document.getElementById("zone_avert"); avertissement.innerHTML = ""; if (nombre.length<4){ avertissement.innerHTML = "Vous devez entrer 4 caractères"; } } --> </script>
ensuite dans ton PHP, ton input:
<input type="text" name="mois" size="4" maxlength="4" value="" onkeypress="test_input(this.value)" onkeyup="test_input(this.value)" /><span id="zone_avert"></span>
@+
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
1 juil. 2009 à 09:52
1 juil. 2009 à 09:52
Hello,
Essaie avec l'option maxlength (non testé, je viens de trouver ca sur Google)
<form method="post" enctype="multipart/form-data">
<p> mois : </p> <input type="text" name="mois" maxlength="2" value=""/>
<p> annee </p> <input type="text" name="annee" maxlength="4" value=""/>
</form>
L'option size definit la longueur du champ input ;)
EDIT : Ah, pas assez rapide pour répondre ^^
Essaie avec l'option maxlength (non testé, je viens de trouver ca sur Google)
<form method="post" enctype="multipart/form-data">
<p> mois : </p> <input type="text" name="mois" maxlength="2" value=""/>
<p> annee </p> <input type="text" name="annee" maxlength="4" value=""/>
</form>
L'option size definit la longueur du champ input ;)
EDIT : Ah, pas assez rapide pour répondre ^^
Ozimandias
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
1 juil. 2009 à 09:55
1 juil. 2009 à 09:55
C'est pas grave, ton post est la preuve que l'on peut trouver des réponses avec gogole...
@+
@+
Si seulement j'avais accès à internet, j'ai accès qu'à un nombre minime de sites dont comment ça marche. =)
<script language="javascript" type="text/javascript">
<!--
function test_input(nombre){
avertissement = document.getElementById("zone_avert");
avertissement.innerHTML = "";
if (nombre.length<2){
avertissement.innerHTML = "Vous devez entrer 2 caractères";
}
}
-->
</script>
<p> mois : </p> <input type="text" name="mois" size="2" value="" onkeypress="test_input(this.value)" onkeyup="test_input(this.value)" /><span id="zone_avert"></span>
Si j'ai bien compris pour le second ce sera ainsi?
Sinon niveau explication du code, tu as en fait créé une fonction qui va lancer une fenetre d'erreur si la longueur n'est pas celle attendue. Par contre je sais qu'onkeypress verifie les touche pressée mais cela signifie que la verification se fera à chaque fois ou losque j'enverrais le formulaire?
Si ce n'est pas la seconde en mettant un isset ($_post(envoye) qui appelera la fonction de test ça le fera qu'une fois le form envoyé non?
Merci pour votre précieuse aide!
<script language="javascript" type="text/javascript">
<!--
function test_input(nombre){
avertissement = document.getElementById("zone_avert");
avertissement.innerHTML = "";
if (nombre.length<2){
avertissement.innerHTML = "Vous devez entrer 2 caractères";
}
}
-->
</script>
<p> mois : </p> <input type="text" name="mois" size="2" value="" onkeypress="test_input(this.value)" onkeyup="test_input(this.value)" /><span id="zone_avert"></span>
Si j'ai bien compris pour le second ce sera ainsi?
Sinon niveau explication du code, tu as en fait créé une fonction qui va lancer une fenetre d'erreur si la longueur n'est pas celle attendue. Par contre je sais qu'onkeypress verifie les touche pressée mais cela signifie que la verification se fera à chaque fois ou losque j'enverrais le formulaire?
Si ce n'est pas la seconde en mettant un isset ($_post(envoye) qui appelera la fonction de test ça le fera qu'une fois le form envoyé non?
Merci pour votre précieuse aide!
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
1 juil. 2009 à 10:20
1 juil. 2009 à 10:20
N'oublie pas le maxlength="2", pour être sur que la longueur soit de 2, ni plus ni moins ;)
Par contre, je pense que ca risque de devenir tres lourd, un message d'erreur a chaque saisie de touche.
J'aurais plutot fait :
<script language="javascript" type="text/javascript">
<!--
function test_input(nombre){
avertissement = document.getElementById("zone_avert");
avertissement.innerHTML = "";
if (nombre.length<4){
avertissement.innerHTML = "Vous devez entrer 4 caractères";
return false;
}else{
return true;
}
}
-->
</script>
<form method="post" enctype="multipart/form-data" onSubmit=test_input(this.value); >
<p> mois : </p> <input type="text" name="mois" maxlength="2" value=""/>
<p> annee </p> <input type="text" name="annee" maxlength="4" value=""/>
</form>
Par contre, je pense que ca risque de devenir tres lourd, un message d'erreur a chaque saisie de touche.
J'aurais plutot fait :
<script language="javascript" type="text/javascript">
<!--
function test_input(nombre){
avertissement = document.getElementById("zone_avert");
avertissement.innerHTML = "";
if (nombre.length<4){
avertissement.innerHTML = "Vous devez entrer 4 caractères";
return false;
}else{
return true;
}
}
-->
</script>
<form method="post" enctype="multipart/form-data" onSubmit=test_input(this.value); >
<p> mois : </p> <input type="text" name="mois" maxlength="2" value=""/>
<p> annee </p> <input type="text" name="annee" maxlength="4" value=""/>
</form>
Ozimandias
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
1 juil. 2009 à 10:44
1 juil. 2009 à 10:44
ta fonction ne peut pas marcher... Tu lui demandes de tester la longueur de la valeur du formulaire...
<form method="post" enctype="multipart/form-data" onSubmit=test_input(this.value); >
Le mot-clef "this" prends en compte la "balise" dans laquelle il est, donc form dans ce cas.
Avec ma fonction, le message d'erreur s'affichera dans le span a côté du input dès que la personne tape un caractère et ce jusqu'à ce qu'il en ai tapé 4. Elle est facilement modifiable pour que ça marche avec le input à 2 caractères.
<form method="post" enctype="multipart/form-data" onSubmit=test_input(this.value); >
Le mot-clef "this" prends en compte la "balise" dans laquelle il est, donc form dans ce cas.
Avec ma fonction, le message d'erreur s'affichera dans le span a côté du input dès que la personne tape un caractère et ce jusqu'à ce qu'il en ai tapé 4. Elle est facilement modifiable pour que ça marche avec le input à 2 caractères.
justins
>
Ozimandias
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
1 juil. 2009 à 11:32
1 juil. 2009 à 11:32
Et pour tester après la frappe je vais devoir procéder de quelle manière, par exemple une fois que je submit le formulaire qu'on me dire que la valeur entrée est invalide?
Merci
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mopra-L
Messages postés
146
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
23 mai 2012
6
1 juil. 2009 à 10:53
1 juil. 2009 à 10:53
Ah, je vois, plus ingenieux que moi, je l'avoue :D
Avec tout ca, il devrait trouver son bonheur, en tout cas :)
Avec tout ca, il devrait trouver son bonheur, en tout cas :)