ASP.NET Textbox - Избегайте копирования вставки нескольких символов - PullRequest
0 голосов
/ 09 июля 2009

Нам нужно остановить копирование нескольких символов, таких как «<» или «>» или любых символов, которые могут быть потенциально опасными.

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

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

Мы пробовали различные события текстового поля, такие как OnPaste (работает в IE, а также Mozilla, но в Mozilla мы не можем получить содержимое из буфера обмена), OnBlur (работает нормально, но не работает, когда установлен флажок с runat как Сервер) и несколько других без реального прогресса.

Буду признателен, если кто-нибудь из вас, ребята, сможет мне помочь и помочь мне раньше, поскольку мы в сжатые сроки!

Большое спасибо, Атул

Ответы [ 2 ]

4 голосов
/ 09 июля 2009

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

Тем не менее, еще лучше, вероятно, выполнить эту проверку при отправке. Попробуйте встроенные валидаторы регулярных выражений. Потому что на самом деле вы беспокоитесь о пользователях, отправляющих опасные символы, верно, а не о том, что они на самом деле вставили их?

РЕДАКТИРОВАТЬ (пример)

<asp:TextBox ID="txtName" runat="server"/>
<asp:RegularExpressionValidator ID="regexpName" runat="server"     
    ErrorMessage="This expression does not validate." 
    ControlToValidate="txtName" Display="Dynamic"
    ValidationExpression="^[^<>]$" />
0 голосов
/ 09 июля 2009

Вы пытаетесь изменить то, что находится в буфере обмена пользователя перед вставкой? Почему бы не прикрепить событие onchange, которое выполняет любую необходимую вам проверку? Вы можете заменить любые символы, которые вам там не нужны.

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