Vérification chekbox choix multiple

Vérification chekbox choix multiple - HTML/CSS - Programmation

Marsh Posté le 07-08-2006 à 23:26:58    

Bonjour,
voila j'ai créé  un petit formulaire en php dont voici un exemple :

Code :
  1. <form name='formulaire' METHOD='GET' action=".$PHP_SELF." onsubmit='return validation();'>
  2.      <input type='checkbox' name='recherche[]' value='1'>toto<br>
  3.      <input type='checkbox' name='recherche[]' value='2'>titi<br>
  4.      <input type='checkbox' name='recherche[]' value='3'>tata<br>
  5.      <input type='submit' value='valider'>
  6. </form>


donc je voudrais faire une fonction javascript qui me permet de vérifier que au moins une checkbox a été cochée mais je ni parvient pas.
 
Quelqu'un peut-il m'aider svp ?

Reply

Marsh Posté le 07-08-2006 à 23:26:58   

Reply

Marsh Posté le 07-08-2006 à 23:53:28    

Code :
  1. <form name='formulaire' METHOD='GET' action=".$PHP_SELF." onsubmit='return validation(this);'>
  2. function validation(form) {
  3.   var inputs = this.getElementsByTagName("input" );
  4.   var oneCheck = false;
  5.    for (var i=0; i<inputs.length;i++) {
  6.   var x=input[i];
  7.    if (x.type.toLowerCase=="checkbox" && x.name.indeoxOf(rechercher)!=-1) && x.checked) oneCheck = true;
  8.   if (!oneCheck) {
  9.   alert("vous devez au moins cocher une de ces putains de cases" ); 
  10. return oneCheck;
  11. }
  12. }
  13. }

Reply

Marsh Posté le 07-08-2006 à 23:55:04    

merci, mais est ce que cela marche même si jai des champs autre que des checkbox dans mon formulaire ?

Reply

Marsh Posté le 08-08-2006 à 01:00:34    

regarde le code bordel :o

Reply

Marsh Posté le 08-08-2006 à 01:01:31    

autant pour moi :d

Reply

Marsh Posté le 08-08-2006 à 02:18:20    

j'ai essayé mais ça ne marche pas et je ne vois pas pourquoi, voici l'erreur de la console javascript :
Erreur : syntax error
Code source :
if (x.type.toLowerCase=="checkbox" && x.name.indeoxOf(recherche)!=-1) && x.checked)

Reply

Marsh Posté le 08-08-2006 à 02:29:43    

x.type.toLowerCase=="checkbox"
devient  
x.type.toLowerCase()=="checkbox"
avec un peu de recherche tu aurait trouvé
j'avais tapé ce bout de code à l'arrache sans le tester tout à l'heure

Reply

Marsh Posté le 08-08-2006 à 02:31:49    

ça me renvoit toujours la meme erreur

Reply

Marsh Posté le 08-08-2006 à 07:53:58    

aller fait un effrot bordel :o
 
if (x.type.toLowerCase()=="checkbox" && x.name.indeoxOf(recherche)!=-1 && x.checked)
il restait une parenthere de trop après le -1

Reply

Marsh Posté le 08-08-2006 à 15:07:28    

J'avoue que pour la parenthèse j'aurais pu le voir mais a 3h00 du mat c'est un peu plus difficile :)
Sinon la apparament la syntaxe est bonne, mais il doit y avoir un problème avec le this, voici mon code :

Code :
  1. function validation(form)
  2. {
  3. var inputs = this.getElementsByTagName("input" ); 
  4. var oneCheck = false
  5. for (var i=0; i<inputs.length;i++)
  6.  var x=input[i]; 
  7.  if (x.type.toLowerCase()=="checkbox" && x.name.indeoxOf(recherche)!=-1 && x.checked)
  8.   oneCheck = true
  9.  if (!oneCheck)
  10.  { 
  11.   alert("vous devez au moins cocher une de ces putains de cases" ); 
  12.   return oneCheck;
  13.  }
  14. }
  15. }
  16. echo "<form name='formulaire' METHOD='GET' action=".$PHP_SELF." onsubmit='return validation(this);'>";


 
Je dois avouer que en javascript je ni connait pas grand chose hormis le fait de faire quelques vérifications de champs !

Reply

Marsh Posté le 08-08-2006 à 15:07:28   

Reply

Marsh Posté le 08-08-2006 à 16:55:11    

Citation :


var inputs = this.getElementsByTagName("input" );  
var x=input[i];  


tu vois rien qui change????
 
par ailleurs tu n'as pas de return true si tout se passe bien!

Reply

Marsh Posté le 08-08-2006 à 17:05:42    

Et il faudrait sortir le test if (!oneCheck) de la boucle car là, si le 1er checkbox n'est pas coché, tu te prends le message d'alerte

Reply

Marsh Posté le 08-08-2006 à 17:19:06    

j'ai corrigé var x=input[i];   en var x=inputs[i];  
jai sortie le test if (!oneCheck) de la boucle
 
et j'ai le message d'erreur suivant : this.getElementsByTagName is not a function
 
je demande si c'est pas un problème avec le this...

Reply

Marsh Posté le 08-08-2006 à 19:23:18    

Je vous propose de recoder une fonction qui a été écrite en 1 minute à 23h30 du soir après 15h de taf [:petrus75] ya po de pb

Reply

Marsh Posté le 08-08-2006 à 19:48:42    

lol bin perso ça me dérangerait pas de le faire si je maitrisait le javascript :) mais c'est pas le cas...

Reply

Marsh Posté le 09-08-2006 à 13:54:01    

Code :
  1. <form name='formulaire' METHOD='GET' action=".$PHP_SELF." onsubmit='return validation(this);'>
  2. function validation(form) {
  3.   var inputs = form.getElementsByTagName("input" );
  4.   var oneCheck = false;
  5.   for (var i=0; i<inputs.length && !oneCheck; i++) {
  6.     var x=input[i];
  7.     if (x.type.toLowerCase=="checkbox" && x.name.indeoxOf(rechercher)!=-1 && x.checked) {
  8.       oneCheck = true;
  9.     }
  10.   }
  11.   if (!oneCheck) {
  12.     alert("vous devez au moins cocher une de ces putains de cases" );
  13.   }
  14.   return oneCheck;
  15. }

Reply

Marsh Posté le 29-08-2006 à 01:38:00    

me revoila apres mes ptites vacances mais malheuresement cela ne marche toujours pas :(

Reply

Marsh Posté le 29-08-2006 à 07:26:46    

hacksi a écrit :

me revoila apres mes ptites vacances mais malheuresement cela ne marche toujours pas :(


Tu te sors les doigts du trou du cul. Tu prends firefox, tu ouvres la console firefox et tu nous dis l'erreur que ça te mets.
de plus tu nous colle le code HTML (avec un H, un T, un M, et un L) de ta page et pas le code PHP afin que nous puissions voir exactement d'où ça viens.

Reply

Marsh Posté le 29-08-2006 à 11:38:58    

hacksi a écrit :

me revoila apres mes ptites vacances mais malheuresement cela ne marche toujours pas :(


 
c'est bizarre une fois je suis rentré de vacances et tout mon code était débuggé  :lol:

Reply

Marsh Posté le 01-09-2006 à 00:16:46    

Bon le soucis cest ce test :

Code :
  1. if (x.type.toLowerCase()=="checkbox" && x.name.indeoxOf(recherche)!=-1 && x.checked)


le test est jamais vrai...


Message édité par hacksi le 01-09-2006 à 00:17:00
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed