Ich möchte ein Textfeld machen nur Buchstaben (a-z) mit jQuery. Irgendwelche Beispiele?
Antworten
Zu viele Anzeigen?Lösung beschrieben durch @dev-null-dweller
funktioniert absolut.
Ab dem jQuery 3.0
, .bind()
Methode ist veraltet. Sie wurde ersetzt durch die Methode .on()
Methode zum Anhängen von Ereignishandlern an ein Dokument seit jQuery 1.7
Daher wurde von seiner Verwendung bereits abgeraten.
Die Liste der veralteten Methoden für jQuery 3.0 finden Sie hier: http://api.jquery.com/category/deprecated/deprecated-3.0/
Die Lösung ist also die Verwendung von .on()
Methode stattdessen .bind()
.
Wenn Sie vorhandene Elemente binden müssen, lautet der Code :
$('.alphaonly').on('keyup blur', function(){
var node = $(this);
node.val( node.val().replace(/[^a-z]/g,'') );
});
Wenn Sie an dynamische Elemente binden müssen, lautet der Code :
$(document).on('keyup blur', '.alphaonly', function(){
var node = $(this);
node.val(node.val().replace(/[^a-z]/g,'') );
});
Sie müssen das Ereignis an das Dokument oder ein anderes Element binden, das bereits beim Laden des Dokuments vorhanden ist.
Ich hoffe, dies ist hilfreich für die neue Version von jQuery.
$("#test").keypress(function(event){
var inputValue = event.charCode;
//alert(inputValue);
if(!((inputValue > 64 && inputValue < 91) || (inputValue > 96 && inputValue < 123)||(inputValue==32) || (inputValue==0))){
event.preventDefault();
}
});
$("#test1").keypress(function(event){
var inputValue = event.charCode;
//alert(inputValue);
if(!((inputValue > 47 && inputValue < 58) ||(inputValue==32) || (inputValue==0))){
event.preventDefault();
}
});
$("#test3").keypress(function(event){
var inputValue = event.charCode;
//alert(inputValue);
if(!((inputValue > 64 && inputValue < 91) || (inputValue > 96 && inputValue < 123)||(inputValue==32)||(inputValue > 47 && inputValue < 58) ||(inputValue==32) || (inputValue==0))){
event.preventDefault();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
For letters:<input type="text" id="test"> <br>
<br>
For Numbers: <input type="text" id="test1">
<br>
<br>
For Alphanumeric: <input type="text" id="test3">
Danke an die erste Antwort, die ich erhalten habe.
<input name="lorem" class="alpha-only">
<script type="text/javascript">
$(function()
{
$('.alpha-only').bind('keyup input',function()
{
if (this.value.match(/[^a-zA-Z áéíóúÁÉÍÓÚüÜ]/g))
{
this.value = this.value.replace(/[^a-zA-Z áéíóúÁÉÍÓÚüÜ]/g, '');
}
});
});
</script>
Dies hat einige Verbesserungen wie Buchstaben mit Akzenten, und das Ändern von "Unschärfe" für "Eingabe" korrigiert die Nicht-Buchstaben kurzzeitig angezeigt, auch wenn Sie Text mit der Maus auswählen und Ziehen korrigiert wird.
JQuery-Funktion, die nur Klein- und Großbuchstaben zulässt:
Textfeld:
<input id="a" type="text" />
JQuery-Funktion:
$('#a').keydown(function (e) {
if (e.ctrlKey || e.altKey) {
e.preventDefault();
} else {
var key = e.keyCode;
if (!((key == 8) || (key == 32) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90))) {
e.preventDefault();
}
}
});
Unterstützt die Rücktaste:
new RegExp("^[a-zA-Z \b]*$");
Bei dieser Option wird das Mobiltelefon nicht überprüft. Sie können also eine jQuery Maske Plugin und verwenden Sie folgenden Code:
jQuery('.alpha-field, input[name=fname]').mask('Z',{translation: {'Z': {pattern: /[a-zA-Z ]/, recursive: true}}});