IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Empêcher le 0 au début


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Programmeur vba
    Inscrit en
    Octobre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur vba

    Informations forums :
    Inscription : Octobre 2014
    Messages : 40
    Points : 25
    Points
    25
    Par défaut Empêcher le 0 au début
    Bonjour et merci d'avance
    J'y suis presque avec mon code suivant

    Je voulais juste y faire un antibug

    Ok si on y entre une valeur entre 1 et 135

    Mais comment enpêcher d'y mettre la valeur 0 avant

    Problème si on y choisis 012 aulieu de 12

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function controlego(form1) {
    var test = document.form1.input.value;
     
    if (test > 0 && test < 136 ) {
    	document.form1.input.value = document.form1.input.value * 1
        window.open("pages/"+test+".html","_self");
    		document.form1.input.value =""
    } else {
        alert("AUCUN PORTANT LE NUMÉRO "+document.form1.input.value);
    		document.form1.input.value =""
    }
    }
    Donc sur la ligne if du genre: if (test > 0 && test < 136 && Left(test,1) <> 0 ) {

    Merci de votre aide

    Temjeh

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Programmeur vba
    Inscrit en
    Octobre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur vba

    Informations forums :
    Inscription : Octobre 2014
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    Après 1 hr j'ai trouvé

    Ma variable *1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function controlego(form1) {
    var test = document.form1.input.value;
     
    if (test > 0 && test < 136 ) {
    	test  = document.form1.input.value * 1;
        window.open("pages/"+test+".html","_self");
    		document.form1.input.value =""
    } else {
        alert("AUCUN PORTANT LE NUMÉRO "+document.form1.input.value);
    		document.form1.input.value =""
    }
    }
    A+

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Il y a juste une petite chose que tu ne sembles pas avoir comprise dans ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var test = document.form1.input.value
    Ici test est une String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (test > 0 && test < 136 ) {
    ici tu compares une String avec des Numbers
    Du coup JavaScript va convertir implicitement la valeur de test en Number.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form1.input.value = document.form1.input.value * 1
    Ici tu multiplies une String avec un entier. Et tu places le résultat dans un input. JavaScript va donc de nouveau convertir la valeur String en Number puis il va faire la multiplication et convertir la valeur Number obtenue en String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "pages/"+test+".html","_self"
    Et pour finir, tu concatènes des Strings.


    Visiblement hors affichage (input et window.open) tu manipules des Nombres.
    Tout ton algo est basé sur des nombres. Il serait peut-être judicieux d'utiliser le type Number.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function controlego(form1) {
      var test = Number.parseInt(document.form1.input.value, 10); //lire le nombre en base 10
     
      if (test > 0 && test < 136 ) {
        //utilisation de .toString(); pour expliciter la convertion
        document.form1.input.value = test.toString(); // inutile de faire une multiplication document.form1.input.value * 1;
        window.open("pages/"+document.form1.input.value+".html","_self");
        document.form1.input.value =""
      } else {
        alert("AUCUN PORTANT LE NUMÉRO "+document.form1.input.value);
        document.form1.input.value =""
      }
    }
    dans ce cas une conversion String => Number explicite pour convertir la String en Number.
    les comparaisons se font nativement avec le type Number
    puis une conversion explicite Number => String pour la lisibilité du code
    Et utilisation de la String pour la concaténation.

    Le code reste simple, pas d'opération inutile, pas de conversion implicite.

    A+JYT

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Programmeur vba
    Inscrit en
    Octobre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur vba

    Informations forums :
    Inscription : Octobre 2014
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup sekaijin

    Oui ton code est bon et tes explications très clair.

    Comme tu peut voir, je suis nul avec cette programmation.
    Je programme en VBA et je déclare jamais mes variables.
    Voilà pourquoi j'ai pas pensé au number.

    Merci encore

    Temjeh

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Je programme en VBA et je déclare jamais mes variables.
    Il est des bons réflexes à prendre et ce quelque soit le langage !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52
  2. Comment empêcher l'ouverture d'un TPopupMenu !?
    Par Lung dans le forum Composants VCL
    Réponses: 9
    Dernier message: 20/08/2003, 11h47
  3. Empécher la sélection du texte des pages dans un WebBrowser
    Par DevelOpeR13 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 05/06/2003, 18h36
  4. [MSXML] Comment empécher la conversion des entités ?
    Par nima dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/11/2002, 14h14
  5. Toutes les bonnes choses ont un début ...
    Par Bols2000 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/08/2002, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo