Member 13801308 Ответов: 1

Как запретить пользователю ставить какие-либо специальных символов в текстовом поле, используя textchanged событие в C#?


это относится к веб-приложению, которое я не хочу использовать javascript

Что я уже пробовал:

защищенный void TextBox1_TextChanged(отправитель объекта, EventArgs e)
{

строка text = ((TextBox)sender).Текст;
var regex = новое регулярное выражение(@"[^a-zA-Z0-9\s]");
если (!regex.Выполняется(текст.Метод toString()))
{
возвращать false;
}
}

F-ES Sitecore

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

1 Ответов

Рейтинг:
12

OriginalGriff

Даже не пытайтесь делать это на стороне сервера - мало того, что это будет означать поездку туда и обратно на сервер каждый раз, когда пользователь вводит ключ, что действительно испортит скорость набора текста, это очень плохой способ думать, даже если вы могли бы это сделать, а вы не можете.

Вам нужно сделать это в Javascript: Как ограничить специальные символы и пробелы в текстовом поле с помощью javascript?[^]


F-ES Sitecore

Это событие вызывается только (при условии автопостбэка), когда текстовое поле теряет фокус, а не при каждом нажатии клавиши.