Мне нужно ввести только строку, вставляемую в текстовое поле, но пробел не работал, помогите мне, друзья. , ,
$(".onlyname").keypress(function (evt) {
evt = (evt) ? evt : event;
var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
((evt.which) ? evt.which : 0));
if (charCode > 31 && (charCode == 9 || charCode == 40 || charCode == 39 || charCode == 32 || charCode == 37 || charCode == 27 || charCode < 65 || charCode > 90) &&
(charCode < 97 || charCode > 122)) {
$('#error').attr('class', 'errorMessage');
$('#error').text("Enter Only Alphabets Value");
return false;
}
else {
$('#error').attr('class', ' display: none;');
$('#error').text("");
return true;
}
});
Это условие неверно
if (charCode > 31 && (charCode == 9 || charCode == 40 || charCode == 39 || charCode == 32 || charCode == 37 || charCode == 27 || charCode < 65 || charCode > 90) &&
(charCode < 97 || charCode > 122)) {
Код клавиши пробела - 32, поэтому, когда вы вводите пробел, это условие выполняется, и оно печатает ошибку.
Попробуйте tis fiddle http://jsfiddle.net/nfDM8/
Или попробуйте это редактирование в своем собственном коде
$(".onlyname").keypress(function (evt) {
evt = (evt) ? evt : event;
var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
((evt.which) ? evt.which : 0));
if (charCode > 32 && (charCode == 9 || charCode == 40 || charCode == 39 || charCode == 37 || charCode == 27 || charCode < 65 || charCode > 90) &&
(charCode < 97 || charCode > 122)) {
alert("Enter Only Alphabets Value");
return false;
}
else {
return true;
}
});
keydown
event - «Событие нажатия клавиши аналогично событию нажатия клавиши, за исключением того, что модификатор и непечатаемые клавиши, такие как Shift, Esc, и события триггера нажатия триггера удаления, но не события нажатия клавиши». - api.jquery.com/keypress$('#error').attr('class', ' display: none;');
это неправильно, это должно быть$('#error').css('display','none');