web-dev-qa-db-fra.com

Comment faire en sorte qu'un champ de saisie n'accepte que des lettres en javaScript?

function validate() {
if(document.myForm.name.value =="" ){
alert("Enter a name");
document.myForm.name.focus();
return false;
}

C'est ce que je l'ai écrit pour une chaîne vide, maintenant j'en ai besoin pour accepter que des lettres?

9
Raghu

Si vous voulez uniquement des lettres - donc de a à z , minuscules ou majuscules, à l'exclusion de tout le reste (chiffres, espaces, symboles), vous pouvez modifier votre fonction comme ceci:

function validate() {
    if (document.myForm.name.value == "") {
        alert("Enter a name");
        document.myForm.name.focus();
        return false;
    }
    if (!/^[a-zA-Z]*$/g.test(document.myForm.name.value)) {
        alert("Invalid characters");
        document.myForm.name.focus();
        return false;
    }
}
12
Stefano Dalpiaz
function alphaOnly(event) {
  var key = event.keyCode;
  return ((key >= 65 && key <= 90) || key == 8);
};

ou

function lettersOnly(evt) {
       evt = (evt) ? evt : event;
       var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
          ((evt.which) ? evt.which : 0));
       if (charCode > 31 && (charCode < 65 || charCode > 90) &&
          (charCode < 97 || charCode > 122)) {
          alert("Enter letters only.");
          return false;
       }
       return true;
     }
3
Chankey Pathak

Essaye ça:

var alphaExp = /^[a-zA-Z]+$/;
            if(document.myForm.name.match(alphaExp))
            {
                //Your logice will be here.
            }
            else{
                alert("Please enter only alphabets");
            }

Merci.

2
Raja Danish

Utilisez onkeyup dans la zone de texte et vérifiez le code clé de la touche enfoncée. Si sa valeur est comprise entre 65 et 90, autorisez vider la zone de texte.

0
rgodse