Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1021 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  script incompréhensible !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script incompréhensible !!

n°1414709
malouin35
Posté le 27-07-2006 à 16:10:00  profilanswer
 

Bonjour à tous !
 
Sur une page j'ai fait un formulaire avec des champs qui existe ou non ... Là n'est pas le soucis ! Ma fonction ajvascript doit vérifier si les valeurs entre deux (qui existe) sont > ou <= ....
 
Voici le code :

Citation :

function Formcheck(){
   
  var ok = 1;
   
  var i = 1;
  while( (i < 24) && (ok == 1) ){
   
   if( document.getElementById(i) ){//Si l'input est présent
     
    var j = document.getElementById(i).value;
    var k = document.getElementById("q"+i).value;
    //alert(j+" - "+k+" - "+ok);
     
    if( j > k ){ //Il ne rentre jamais ici  !!!!!!!!!!!!!!!!!!
     alert("toto" );
     ok = 0;
    }
   }
   i = i + 1;
  }
  //alert("ok "+ok);
  if(ok == 0){
   msg = "Vous n'avez pas assez de vaisseaux disponibles !";
   alert(msg);
   
   return false;
  }
  else{
   return true;
  }
 }


 
Ainsi il ne rentre jamais dans le test malgré le fait que quand j'affiche j et k , j est parfois supérieur à k ! Mais ok reste à 1 !!
 
Je ne comprend pas du tout le bug ?

mood
Publicité
Posté le 27-07-2006 à 16:10:00  profilanswer
 

n°1414763
malouin35
Posté le 27-07-2006 à 16:43:29  profilanswer
 

Dans l'autre sens ( j <= k avec changement des valeurs de ok) ca marche pas non plus ! La il rentre dans le test à chaque fois ! Même quand il ne devrais pas .... :(
 
Avez-vous une idée ???
 
Edit : quand je fais ceci :

Citation :


var j = 10;//document.getElementById(i).value;
var k = 4;//document.getElementById("q"+i).value;


 
Ca marche !!! C'est donc que lorsque qu'il prend les valeurs des input il ne prend pas cela pour des int ?? Si c'est ca comment forcer le type ?


Message édité par malouin35 le 27-07-2006 à 16:45:56
n°1414775
malouin35
Posté le 27-07-2006 à 16:52:21  profilanswer
 

oups pardon avec une recherche j'ai trouvé la réponse à ma question et j'ai adapté le script ...
 

Citation :


  var ok = 1;
   
  var i = 1;
  while( (i < 24) && (ok == 1) ){
   
   if( document.getElementById(i) ){//Si l'input est présent
     
    var j = parseInt(document.getElementById(i).value);
    var k = parseInt(document.getElementById("q"+i).value);
     
    if( j > k ){
     ok = 0;
    }
   }
   i = i + 1;
  }

n°1414793
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-07-2006 à 17:02:26  profilanswer
 

vu que parseInt prend en second paramètre un "radix", je te conseille vivement de le mettre.
 
parseInt(val, 10);
 
sinon... tu vas rigoler le jour où tu auras "10" ou "11"... le parseInt() va te rammener 8 et 9... (il bosse par défaut en base 8 cet abruti !)
 
j'ai galéré des mois sur un site de VPC avec ça...
 
le client commandait 10 unités du produit, et s'il ne faisait pas gaffe, dans son panier on n'en mettait que 8 :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  script incompréhensible !!

 

Sujets relatifs
script de calculMeilleur script de gestion des membres
droper les index d'une base oracle avec un script kshUtiliser une variable d'un script dans un autre script
InCoMpReHeNsIbLe (pointeur non portable !?!*#...)Bloquer un script pour attendre la fin des traitements
[CSS] Problème incompréhensible d'alignement[PHP] Outil de mise à jour du script
executer un script perl periodiquementpb de script bash incompréhensible
Plus de sujets relatifs à : script incompréhensible !!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR