Я использую JQuery для проверки текстового поля, чтобы разрешить только числа. Проблема в том, что она позволяет сдвинуть + специальные карыграторы. Я использовал аналогичный код для проверки имени, за исключением нескольких изменений, но не допускает никаких специальных символов. Я confused.My кодJQuery Validate Text Box value
if(e.keyCode==46 || e.keyCode==8|| e.keyCode==9 || e.keyCode==37 || e.keyCode==39)
{
// do nothing allow
}
else if(e.keyCode>=48 && e.keyCode<=57)
{
// do nothing allow
}
else
{
e.preventDefault();
}
Вот мой Fiddle. На скрипке первое поле ввода не допускало специальных символов, таких как @,#,$,%
. Но второй позволяет использовать специальные символы. Я проверил специальные символы в заявлении If
. Правильно ли моя логика? Что-то не так?
Я думаю, все в порядке. Однако вы должны проверить на стороне сервера значения, которые вы получаете от пользователя. Javascript в браузере можно отключить, и, следовательно, злонамеренный пользователь может отправить вам значения, которые нарушают вашу логику. Поэтому вы должны проверить их на стороне сервера, прежде чем они будут сохранены в db. – Christos
В HTML5 вы можете использовать атрибут pattern, который может быть проще http://www.w3schools.com/tags/att_input_pattern.asp –
Если я удалил 'e.keyCode> = 48 && e.keyCode <= 57' и проверил для других символов не допускается клавиша переключения. Ясно, что проблема заключается в 'e.keyCode> = 48 && e.keyCode <= 57' –