Любые советы о том, как написать функцию JS для проверки ввода пользователя перед отправкой на страницу HTML?
Используя это до сих пор:
document.onkeyup = function(event){
if (event.key >= 65 && event.key <=90){
guessesList.push(userChoice);
}
};
но, похоже, ничего не делает, когда я обновляю страницу. Вход должен быть только буквой, а не числом или другим ключом ввода.
Вы пытаетесь сравнить каждый символ с 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)" />
event.keyCode
( KeyboardEvent.keyCode ). event.key
этого лучше использовать event.key
( KeyboardEvent.key ).
Вы можете использовать свойство 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)" />
event.keyCode
( KeyboardEvent.keyCode ). event.key
этого лучше использовать event.key
( KeyboardEvent.key ).
Вы можете добавить атрибут 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]+" />
match()
чтобы убедиться, что только буквы передаются с помощью регулярного выражения: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…