Limiter la saisie dans un champ

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Limiter la saisie dans un champ

Messagepar kagura31 » 10 Déc 2012 à 15:01

Bonjour,

Je suis en client lourd en V8.
J'ai un formulaire avec 5 champs pour représenter un numéro de téléphone.
J'aimerai pouvoir limiter la saisie dans mes champs à 2 chiffres et si possible quand je tape le 3eme ca passe au champ suivant.
J'ai essayé de passer par "Input validation" mais ca ne fonctionne pas.

Cordialement
kagura31
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 115
Inscrit(e) le : 12 Avr 2006 à 15:08
Localisation : Lyon

Re: Limiter la saisie dans un champ

Messagepar Michael DELIQUE » 10 Déc 2012 à 16:19

salut

ce genre de truc en client lourd ça marche moyen (pas comme en web).

la validation fonction au save donc tu risque d'avoir des souci.

essais plustot le "input Translation" voir le onchange...
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Limiter la saisie dans un champ

Messagepar abertisch » 10 Déc 2012 à 16:25

Salut,

J'avais ça en JS !

Je vais voir si je te retrouve ça quelque part ! :mrgreen:

Edit :

Dans le "onFocus" de ton champ tu ajoutes :
Code : Tout sélectionner
startListener(this, 50, document.forms[0].nom de ton champ);


et dans le "onBlur" de ton champ tu ajoutes :
Code : Tout sélectionner
lastCount = 0;

if (checkCharCount()) {
   this.focus();
}

else {
   stopListener();
}


Code JS à mettre dans une librairie de script que tu ajoutes ensuite à ton masque :
Code : Tout sélectionner
var listenField;
var counterField;
var maxChars;
var lastCount;

function startListener(field, maxNbChars, countField){

   listenField = field;
   counterField = countField;
   maxChars = maxNbChars;
   lastCount = 0;
   checkCharCount();
}

function stopListener(){
   listenField = null;
   counterField = null;
   maxChars = 0;
   lastCount = 0;
}

function checkCharCount(){

   if (listenField == null) {
      return false;
   }
   
   var count = listenField.value.length;
   
   if (counterField != null) {
      /*counterField.value = count;*/
      counterField.value = maxChars - count;
      
      if (counterField.value <= 0) {
         counterField.value = 0;
      }
   }
   
   if (count > lastCount) {
      if (count > maxChars) {
         lastCount = count;
         alert("Le texte ne doit pas dépasser " + maxChars + " caractères");
      }
   }
   else {
      lastCount = count;
   }
   
   setTimeout("checkCharCount()", 200);
   
   return (count > maxChars);
}
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse


Retour vers Développement