[javascript] verifier présence input avant control formulaire

verifier présence input avant control formulaire [javascript] - HTML/CSS - Programmation

Marsh Posté le 23-06-2006 à 10:32:20    

Bonjour à tous  :)  
 
Je bloque actuellement sur un petit problème javascript pour contrôler mon formulaire.
 
Je dispose d'un tableau généré en php avec différents champs, dans certaines lignes je me retrouve en présence d'input supplémentaires (no_lot et coule).
J'ai fait une petite fonction javascript qui se lance au chargement de la page pour activer les bouttons de validation :
 

Code :
  1. function verif_valid()
  2. {
  3. if (document.getElementById('nb_code_s').value == 0 || document.getElementById('nb_code_s').value > 1)
  4. {
  5.  document.getElementById('valid_gu').disabled=true;
  6.  document.getElementById('gu_vierge').disabled=true;
  7. }
  8. else if (document.getElementById('validation').value == -1 || document.getElementById('qte_pieces').value == "" || document.getElementById('matricule').value == "" || document.getElementById('dateJJ').value == "" || document.getElementById('dateMM').value == "" || document.getElementById('dateAA').value == "" )
  9. {
  10.  document.getElementById('valid_gu').disabled=true;
  11. }
  12. else
  13. {
  14.  document.getElementById('valid_gu').disabled=false;
  15.  document.getElementById('gu_vierge').disabled=false;
  16. }
  17. }


 
Je voudrais maitenant prendre en compte ces input lorsqu'ils sont présent, j'ai essayé d'utiliser typeof et des autres techniques sans succès ...
 
Voila ce que je voudrais faire :
 

Code :
  1. Si l'input no_lot existe
  2. {
  3.    Si l'input no_lot est vide
  4.    {
  5.         alors je désactive les boutons valid
  6.    }
  7. }


 
Pareil pour la coulé, si quelqu'un pouvait me dire quelle fonction utiliser pour contrôler la présence d'un input  ca serait cool  :jap:

Reply

Marsh Posté le 23-06-2006 à 10:32:20   

Reply

Marsh Posté le 23-06-2006 à 10:42:52    

avec undefined?

Code :
  1. if( documet.getElementById('tonId') != undefined ){

Reply

Marsh Posté le 23-06-2006 à 10:46:28    

J'ai déjà essayé d'utiliser undefined sans succès.
 
Voici un le fichier test que j'avais fait :

Code :
  1. <script type="text/javascript">
  2. if( documet.getElementById('test') == undefined ){
  3.    alert('ca marche pas');
  4. }
  5. if( documet.getElementById('test') != undefined ){
  6.    alert('ca marche');
  7. }
  8. </script>
  9. <input type="text" id="test">

Reply

Marsh Posté le 23-06-2006 à 10:49:07    

Pour tester s'il y a un élément avec l'id 'no_lot' :

Code :
  1. if (document.getElementById('no_lot')) {
  2.   ...
  3. }


 
Pour tester s'il est vide :

Code :
  1. if (document.getElementById('no_lot').value == "" ) {
  2.   ...
  3. }


Message édité par Bidem le 23-06-2006 à 10:49:31
Reply

Marsh Posté le 23-06-2006 à 10:59:36    

J'ai aussi essayé cette technique sans succès :(
 
Par exemple :

Code :
  1. <script type="text/javascript">
  2. if (document.getElementById('no_lot')) {
  3.    alert('input présent');
  4. }
  5. else {
  6. alert('non présent'); }
  7. </script>
  8. <input type="text" id="no_lot">


 
revoie toujours input non présent ...
 
(pour vérifier si le champ est rempli pas de problème, c'est juste pour vérifier son existance que je bloque)


Message édité par mc_cut_killer le 23-06-2006 à 11:00:15
Reply

Marsh Posté le 23-06-2006 à 11:14:25    

Montre nous le code html tel qu'il apparait dans "Afficher source"

Reply

Marsh Posté le 23-06-2006 à 11:16:41    

C'est le même, pour effectuer les tests j'ai juste créé une page test.php avec les infos du dessus.

Reply

Marsh Posté le 23-06-2006 à 11:18:51    

Ah c'est bon ! :)
 
J'ai compris pourquoi ca marchait pas, il faut que l'input soit déclaré avant.
 
Si je met mon input avant ca marche, du coup je sais pas si je vais pouvoir utiliser window.onload ...
 
En tout cas merci pour votre aide ;)
 
 
[edit: avec window.onload ca marche nickel]

Message cité 1 fois
Message édité par mc_cut_killer le 23-06-2006 à 11:20:53
Reply

Marsh Posté le 23-06-2006 à 13:21:54    

mc_cut_killer a écrit :

Ah c'est bon ! :)
 
J'ai compris pourquoi ca marchait pas, il faut que l'input soit déclaré avant.
 
Si je met mon input avant ca marche, du coup je sais pas si je vais pouvoir utiliser window.onload ...
 
En tout cas merci pour votre aide ;)
 
 
[edit: avec window.onload ca marche nickel]


Window.onload ne se lance que si la page HTML est entièrement chargée, il faut obligatoirement passer par window.onload ou le <body onload="" > pour faire du JS comme tu le fait :o

Reply

Sujets relatifs:

Leave a Replay

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