<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" class="form-control" name="FullName" id="FullName" required>
$(document).ready(function() {
$('#FullName').bind("cut copy paste drag drop", function(e) {
e.preventDefault();
});
});
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
3 Réponses :
Vous pouvez utiliser ceci: (sans écrire de fonction)
<input type="text" name="onlyalphabet" onkeypress="return (event.charCode > 64 && event.charCode < 91) || (event.charCode > 96 && event.charCode < 123) || (event.charCode == 32)">
Ce code fonctionne bien mais ne laisse pas d'espace entre le nom o.f johann le prend-il comme john doe.
J'ai mis à jour ma solution, maintenant elle acceptera également de l'espace :)
D'après la description du problème, il semble que vous essayez de limiter la valeur saisie aux seuls caractères alphabétiques, ainsi qu'à . et aux espaces. En tant que tel, vous devez vous connecter à l'événement input de l'élément. De là, vous pouvez utiliser une expression régulière pour supprimer les caractères invalides. Essayez ceci:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" class="form-control" name="FullName" id="FullName" required>
$(document).ready(function() {
$('#FullName').on("input", function(e) {
$(this).val((i, v) => v.replace(/[^a-z \.]/gi, ''));
});
});
En passant, notez que bind () était obsolète il y a longtemps et ne devrait pas être utilisé. on () est maintenant la meilleure pratique.
$ (this) .val ((i, v) => v.replace (/ [^ a-z \.] / gi, '')); dans cette ligne où "=>" il génère une erreur de syntaxe. Veuillez m'aider à cet égard.
Je suppose que vous utilisez IE si vous obtenez cette erreur. Dans ce cas, utilisez ceci: $ (this) .val (function (i, v) {return v.replace (/ [^ a-z \.] / Gi, '')});
Sans espace
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" class="form-control" name="FullName" id="FullName" onkeypress="return isNumberKey(event);" required>
$(document).ready(function() {
$('#FullName').bind("cut copy paste drag drop", function(e) {
e.preventDefault();
});
});
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 32)
return true;
return false;
}
Avec espace
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" class="form-control" name="FullName" id="FullName" onkeypress="return isNumberKey(event);" required>
$(document).ready(function() {
$('#FullName').bind("cut copy paste drag drop", function(e) {
e.preventDefault();
});
});
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123))
return true;
return false;
}
Je ne comprends pas ce que ce code devrait faire, la fonction
isnumberkey code> n'est jamais utiliséeMonsieur, ce code fonctionne réellement avec le numéro classé et restreint le clic lorsque quelqu'un entre dans l'alphabet. Maintenant je veux changer cette fonction pour l'alphabet
En outre, vous pouvez utiliser regex au lieu de charcodes