Page 1 sur 1

Limiter la saisie dans un champ

MessagePublié: 10 Déc 2012 à 15:01
par kagura31
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

Re: Limiter la saisie dans un champ

MessagePublié: 10 Déc 2012 à 16:19
par Michael DELIQUE
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...

Re: Limiter la saisie dans un champ

MessagePublié: 10 Déc 2012 à 16:25
par abertisch
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);
}