125 votes

Restreindre l'entrée à la zone de texte: autoriser uniquement les nombres et le point décimal

Comment puis-je limiter la saisie à une zone de texte afin qu'elle n'accepte que les nombres et le point décimal?

173voto

rebisco Points 574
 <HTML>
  <HEAD>
    <SCRIPT language=Javascript>
       <!--
       function isNumberKey(evt)
       {
          var charCode = (evt.which) ? evt.which : evt.keyCode;
          if (charCode != 46 && charCode > 31 
            && (charCode < 48 || charCode > 57))
             return false;

          return true;
       }
       //-->
    </SCRIPT>
  </HEAD>
  <BODY>
    <INPUT id="txtChar" onkeypress="return isNumberKey(event)" 
           type="text" name="txtChar">
  </BODY>
</HTML>
 

Cela fonctionne vraiment!

30voto

tau Points 1626
 form.onsubmit = function(){
    return textarea.value.match(/^\d+(\.\d+)?$/);
}
 

Est-ce ce que vous cherchez?

J'espère que ça aide.

EDIT: J'ai modifié mon exemple ci-dessus afin qu'il ne puisse y avoir qu'une seule période, précédée d'au moins un chiffre et suivie d'au moins un chiffre.

4voto

lak-b Points 764

Cherchez-vous quelque chose comme ça?

    <HTML>
   <HEAD>
   <SCRIPT language=Javascript>
      <!--
      function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))
            return false;

         return true;
      }
      //-->
   </SCRIPT>
   </HEAD>
   <BODY>
      <INPUT id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar">
   </BODY>
  </HTML>
 

4voto

Jitender Kumar Points 363

Il suffit d’appliquer cette méthode dans Jquery et vous pouvez valider votre zone de texte pour accepter uniquement les nombres avec un nombre décimal uniquement.

 function IsFloatOnly(element) {    
var value = $(element).val(); 
var regExp ="^\\d+(\\.\\d+)?$";
return value.match(regExp); 
}
 

S'il vous plaît voir la démo de travail ici

2voto

Anish Karunakaran Points 441

Une petite correction à la brillante réponse de @ rebisco pour valider parfaitement le point décimal.

 function isNumberKey(evt) {
    debugger;
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode == 46 && evt.srcElement.value.split('.').length>1) {
        return false;
    }
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X