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 :

Bloquer sur la saisie d'un champs


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 27
    Par défaut Bloquer sur la saisie d'un champs
    Bonjour,
    Je voulais juste savoir si il y'a une fonction javascript ou un évènement qui bloque l'utilisateur tant qu'il a pas remplie un champ,du coup il le laisse pas passer à l'autre champ et merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    Ca me paraît assez spécifique comme besoin et je ne pense pas qu'il existe de fonction toute faite en javascript pour faire ça.

    Par contre, tu peux faire deux fonctions, une sur le focus de tes inputs, une sur le onblur avec une variable qui contient l'input en cours.

    En gros, dans ta fonction onfocus, tu regarde si il n'existe pas un champ qui a déjà le focus (stocké dans ta variable) et qui n'est pas entièrement rempli.
    Si il en existe un alors tu redonne le focus à cet input (le dernier input que tu a choisi perd donc le focus).
    Si il n'en existe pas, tu actualise la variable avec l'input sélectionné.
    Et pour le onblur, c'est à peu près la même fonction, c'est à dire que si il y'a un input qui est "en cours", tu lui redonne le focus (et ce sera l'élément en question).

    En fait, y'a moyen de factoriser en une seule fonction !

  3. #3
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Comme le suggère Difré91, tu peux utiliser le onblur.

    Perso je le verrai plus du genre : tu mets tous tes input en "disabled" sauf le premier et sur le "onblur" de chacun tu tests si le "value" est correct si oui tu actives le prochain sinon tu désactives le prochain.

    Pour chercher le prochain input, tu peux soit utiliser le DOM directement avec par exemple "nextSibling" ou "parentNode.nextSibling.childNodes".

    Sinon tu auras peut-être plus simple en utilisant le getElementsByTagName('input') et indexOf(this)+1.



  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Par défaut
    Les messieurs ci-dessus te proposent onBlur, j'utiliserais plutôt onKeypress.

    Pourquoi ? Parce qu'avec le onBlur, il faut cliquer en dehors du champ pour activer l'évènement. L'utilisateur va donc savoir qu'il faut cliquer sur un champ désactivé ? J'en doute :-)

    Si tu utilises le onKeypress, tu peux vérifier à chaque fois qu'une touche est appuyée si tu dois activer le champ suivant ou non :-)

    Petit exemple de code :

    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
     
    <!-- HTML -->
    <form id="form">
      <input type="text">
      <input type="text" disabled="disabled">
    </form>
    <!-- /HTML -->
     
    // Javascript
    document.getElementById('form').onkeypress = function(e) {
      var evt = e || window.event, // IE workaround
           target = evt.target || evt.srcElement // IE workaround again
     
      if (target.value !=== '') { // Si la valeur est ce que tu veux
        target.nextSibling.disabled = false // Tu actives l'input suivant
      }
    }

  5. #5
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    @F.Margaine: +1 pour onkeypress

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    Oui, c'est bien le onkeypress !
    Moi je répondais simplement à la contrainte posée qui était de bloquer sur un champ quand il est en cours de saisie, et non dévoiler les champs les uns après les autres (après, c'est surement la finalité du bouzin).

Discussions similaires

  1. [AC-2010] Bloquer la saisie d'un champ en fonction d'un horaire ?
    Par Argonan dans le forum IHM
    Réponses: 4
    Dernier message: 21/06/2013, 19h23
  2. Saisie dans un champ table basé sur une requête
    Par hadaf dans le forum WinDev
    Réponses: 3
    Dernier message: 22/08/2012, 13h39
  3. Bloquer sur le nombre de champs dans une table
    Par fredsete dans le forum Modélisation
    Réponses: 4
    Dernier message: 13/10/2008, 12h01
  4. [JS] contrôle sur la saisie d'un champ avec des valeurs numeriques ?
    Par adil_vpb dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 22/03/2007, 11h12
  5. Bloquer la saisie dans les champs
    Par zorba49 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/02/2006, 16h07

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