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 :

Imposer des restrictions pour des textboxes


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut Imposer des restrictions pour des textboxes
    Bonjour,

    J'ai créé un formulaire a l'aide de textboxes ou l'utilisateur doit rentrer des informations telles que dates, et autres données.

    Est il possible de générer une sorte de restriction vis à vis de ce qui sera entrée par l'utilisateur dans la textboxe ?

    En effet, je voudrai par exemple être certain que l'utilisateur puisse entrer que :

    - un chiffre compris entre 1 et 31 ( pour une textboxe destinée aux mois de l'année )

    - un chiffre et pas de lettres

    Est ce possible de faire ce genre de restriction ?
    Si oui, pourriez vous m'indiquer comment procéder ?

    Je vous remercie de votre aide,

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    Merci, ça fonctionne bien.

    Par contre, comment faut il faire si je souhaite que le contenu entré dans le formulaire ne puisse être compris qu'entre 0 et 59 ( donnée horaire )

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    Pouvez vous me dire si il est possible grâce à un script de n'accepter qu'un chiffre compris entre 0 et 59 ?

    Je n'ai pas trouvé d'exemple sur le web.

    Merci à vous,

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Je n'ai pas trouvé d'exemple sur le web.
    cela me surprend un peu!

    Néanmoins, la fonction fournie dans la ne permet pas de corriger une erreur de saisie sous FireFox, retour arrière, flèches de direction, tabulation et autre entrée sont annulés, donc je t'en fourni une autre, mais tout d'abord la fonction de test qui sera appelée dans celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function testValeur( obj, mini, maxi){
      // recup de la valeur
      var val = parseFloat( obj.value);
      // test aux limites
      if(( val < mini) || (val >maxi)){
        // changement couleur de fond et affichage erreur
        obj.style.backgroundColor = "#ffe0e0";
        alert( 'la valeur doit \352tre comprise entre\nmini\t: ' +mini +'\nmaxi\t: ' +maxi);
        // restaure un fond blanc
        obj.style.backgroundColor = "#ffffff";
        // annule la saisie
        obj.value = "";
        // remets le focus
        obj.focus();
      }
    }
    et maintenant la fonction de saisie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    function saisieChiffre( e, mini, maxi){
      // get event si non transmis a la fonction
      e = e || window.event;
      // accepte chiffres plus point
      var regValide  = /[\d\.]/;
      // accepte les touches BS TAB ENTER END HOME etc...
      var regSpecial = /[\x00\x08\x09\x0D\x23\x24\x25\x26\x27\x28]/;
      // recup code touche pressee
      var code = e.which || e.keyCode;
      // recup le caractere correspondant
      var touche = String.fromCharCode( code);
      // test la validite de la saisie
      var saisieOk = regValide.test( touche) || regSpecial.test( touche);
      // test aux bornes si OK
      if( saisieOk){
        var oInput = e.target || e.srcElement;
        // differe le test pour permettre le update de l'input
        setTimeout( function(){
          testValeur( oInput, mini, maxi);
        }, 10);
      }
      // annule la saisie
      else{
        if( e.stopPropagation){
          e.stopPropagation();
          e.preventDefault();
        }
        else{
          e.cancelBubble = true;
          e.returnValue  = false;
        }
      }
    }
    et tout cela avec un appel du type
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" onkeypress="saisieChiffre(event, 0, 59)">
    Les commentaires sont nombreux, mais n'hésites pas si tu rencontres un problème.

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    Merci, je vais étudier ce code avec attention.

    Cordialement,

Discussions similaires

  1. Imposer des restrictions pour des textboxes
    Par lcoulon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/07/2011, 17h50
  2. Réponses: 0
    Dernier message: 23/07/2009, 09h24
  3. Windows 7 : Des restrictions pour la mise à niveau européenne
    Par Annaelle32 dans le forum Actualités
    Réponses: 0
    Dernier message: 23/07/2009, 09h24
  4. [WD12] Imposer des , ou . pour des chiffres
    Par chapeau_melon dans le forum WinDev
    Réponses: 9
    Dernier message: 20/06/2008, 14h11
  5. Réponses: 6
    Dernier message: 23/05/2005, 15h38

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