Как мне добиться этого: - Когда пользователь вводит символ, такой как 'abcd'
, а затем '>'
(недопустимый символ для моего приложения), я хочу установить обратно текст 'abcd'
.Лучше, если мы сможем отменить сам ввод, как мы делаем в приложении winforms.Это должно происходить, когда пользователь печатает, а не нажатием кнопки.
Я хочу, чтобы это применялось ко всем текстовым полям на моей веб-странице.Это будет легко, если решение основано на jQuery.Может быть что-то, что начнется так.$("input[type='text']")
РЕШЕНИЕ Я использовал оба ответа, предоставленных @jAndy и @Iacopo (извините, не могу пометить как ответ на оба вопроса), как показано ниже.
$(document).ready(function() {
//makes sure that user cannot enter < or > sign in text boxes.
$("input:text").keyup(purgeInvalidChars)
.blur(purgeInvalidChars)
.bind('keypress', function(event) {
if (event.which === 62 || event.which === 60)
return (false);
});
function purgeInvalidChars() {
if (this.value != this.value.replace(/[<>]/g, '')) {
this.value = this.value.replace(/[<>]/g, '');
}
}
});
Хотя одна проблема все еще осталась, т.е. она не позволяет пользователю выделять текст в текстовом поле, и это происходит только в Chrome, нормально работает в IE (впервые: D), не тестироваласьFire Fox.Было бы приятно, если бы кто-нибудь нашел решение для этого или надеялся, что люди в Google решат это: D.
ОБНОВЛЕНИЕ Я решил это проверкой if (this.value != this.value.replace(/[<>]/g, ''))
.Также обновленное решение.
Еще раз спасибо всем ответчикам.