Пробел (32) не работал при нажатии клавиш

0

Мне нужно ввести только строку, вставляемую в текстовое поле, но пробел не работал, помогите мне, друзья. , ,

$(".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;
  }
});
  • 2
    Try keydown event - «Событие нажатия клавиши аналогично событию нажатия клавиши, за исключением того, что модификатор и непечатаемые клавиши, такие как Shift, Esc, и события триггера нажатия триггера удаления, но не события нажатия клавиши». - api.jquery.com/keypress
  • 2
    $('#error').attr('class', ' display: none;'); это неправильно, это должно быть $('#error').css('display','none');
Показать ещё 3 комментария

1 ответ

1
Лучший ответ

Это условие неверно

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;       
        }
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню