Например, если у меня есть форма, и я не хочу, чтобы пользователь вводил в нее числа, и я проверяю ее с помощью функции, содержащей регулярное выражение, как мне предотвратить недопустимый символ, введенный пользователем (в этом примере цифра ) от отображения в текстовой форме, если он не прошел тест регулярного выражения?
Это функция, которую я пробовал, и список выбора, в котором я ее пробовал (другими словами, это не вся программа). Я попытался вернуть false обработчику событий onkeypress, но то, что пользователь вводит в текстовое поле, все равно проходит.
function noNumbers(answer) { //returns false and displays an alert if the answer contains numbers
if (/[\d]+/.test(answer)) { // if there are numbers
window.alert("You can not enter numbers in this field");
return false;
}
}
<form action="get" enctype="application/x-www-form-urlencoded">
<select id="questions" name="questions">
<option value="no_numbers">What is the name of the city where you were born?</option>
<option value="no_letters">What is your phone number?</option>
<option value="no_numbers">What is the name of your favorite pet?</option>
<option value="no_letters">What is your social security number?</option>
<option value="no_numbers">What is your mother's maiden name?</option>
</select>
<p><input type="text" name="answer" onkeypress="validateAnswer();" /></p>
</form>
false
в обработчике событийkeypress
. Что вы пробовали? Мы хотим увидеть код, который вы пробовали. - person thejh   schedule 31.03.2013event
, а код ключа —event.charCode
. - person Barmar   schedule 31.03.2013