[HTML+Javascript]Lier un champ texte à une checlbox

Lier un champ texte à une checlbox [HTML+Javascript] - HTML/CSS - Programmation

Marsh Posté le 25-11-2008 à 18:52:20    

Bonjour,
Je voudrais faire un formulaire et valider certains éléments entrés dans les champs du formulaires.
Pour le moment, ca se passe bien, mais je bute sur un champ particulier. Je voudrais faire une liste de choix, à selectionner par checkbox, puis proposer aprés chaque choix une zone de texte.
Le formulaire devrait vérifier qu'au moins un choix a été fait, et que la zone de texte correspondante a bien été remplie. J'arrive à valider le premier, mais je ne sais pas comment faire pour le second. Toutes les solutions que j'ai essayé ont échouées :s
 
Pour vérifier le checkbox, j'utilise le code suivant dans le head et dans le body:

Code :
  1. function coche(objet) {
  2. var nb = new Number(0);
  3. for(var i=0; i<objet.length; i++)
  4. if(objet[i].checked) nb++; //fin for
  5. if(nb < 1) {
  6. alert('Vous devez cocher au moins un element');
  7. return false;
  8. } //fin if
  9. else return true;
  10. }
  11. ...
  12. ...
  13. <form onsubmit="coche(this.choix)">
  14. ...
  15. <input type="checkbox" name="choix" value="1">1 <input type="text" name="valeur" size="20">
  16. <input type="checkbox" name="choix" value="2">2 <input type="text" name="valeur" size="20">
  17. ...


 
J'ai essayé de tester dans la boucle, comme ceci, mais ca ne marche pas...
Si je valide un seul choix sans entrer de texte, j'ai bien un message d'erreur, si je valide deux choix, mais un seul texte, il valide le formulaire... Merci d'avance
 

Code :
  1. function texte(objet1, objet2) {
  2. for(var i=0; i<objet1.length; i++) {
  3. if(objet1[i].checked && objet2[i].value == "" ) {
  4.  alert('Vous devez donner une valeur pour chaque choix coché.');
  5.  return false;
  6. }//fin if
  7. else return true;
  8. }//fin for
  9. }
  10. }
  11. ...
  12. <form onsubmit="coche(this.choix) && texte(this.choix, this.valeur)">


 
Merci d'avance si vous pouvez m'aider,
bonne journée

Reply

Marsh Posté le 25-11-2008 à 18:52:20   

Reply

Sujets relatifs:

Leave a Replay

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