Javascript Проверка ввода с клавиатуры

1

Любые советы о том, как написать функцию JS для проверки ввода пользователя перед отправкой на страницу HTML?

Используя это до сих пор:

document.onkeyup = function(event){
    if (event.key >= 65 && event.key <=90){
    guessesList.push(userChoice);
    }
};

но, похоже, ничего не делает, когда я обновляю страницу. Вход должен быть только буквой, а не числом или другим ключом ввода.

  • 0
    Вы можете использовать match() чтобы убедиться, что только буквы передаются с помощью регулярного выражения: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 0
    if (event.keyCode> = 65 && event.keyCode <= 90) {выполнить код здесь} else {guessesList.pop (userChoice); } ^^ для будущих пользователей, это то, что я в итоге использовал, с моей страницей, введенной в функцию if. Спасибо всем, кто прокомментировал с полезной информацией!
Теги:
events

3 ответа

1

Вы пытаетесь сравнить каждый символ с keyCode. Таким образом, вам нужно изменить:

event.key в event.keyCode

Вы можете сделать что-то вроде следующего:

function myFunction(event){
  console.log(event.keyCode)
  if (event.keyCode >= 65 && event.keyCode <=90){
    //guessesList.push(userChoice);
  }
};
<input type="text" placeholder="Sample text" id="test" onkeyup="myFunction(event)" />
  • 0
    Обратите внимание, что event.keyCode ( KeyboardEvent.keyCode ). event.key этого лучше использовать event.key ( KeyboardEvent.key ).
0

Вы можете использовать свойство keyCode.

function myFunction(event){
  if (event.keyCode >= 65 && event.keyCode <=90){
     console.log(event.key);
  }
};
<input type="text" placeholder="Sample text" id="test" onkeyup="myFunction(event)" />
  • 0
    Обратите внимание, что event.keyCode ( KeyboardEvent.keyCode ). event.key этого лучше использовать event.key ( KeyboardEvent.key ).
0

Вы можете добавить атрибут pattern с регулярным выражением (он должен быть [A-Za-z]+ в вашем случае) к вашему элементу input, а затем проверить правильность с помощью inputElement.checkValidity(), который возвращает true или false, что означает ваш ввод действителен или недействителен:

function validate(inputEl) {
  console.log(inputEl.checkValidity());
};
<input type="text" id="test" onkeyup="validate(this)" pattern="[A-Za-z]+" />

Ещё вопросы

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