• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Ограничение ввода в Textarea

  • Автор темы Infineon
  • Дата начала
I

Infineon

В разрабатываемом веб-приложении есть поля "TextField" и "TextArea".
Значение "maxlenght" для них вытаскиваются из базы кодом:
[codebox]"output.AddAttribute(HtmlTextWriterAttribute.Maxlength, this.MaxLength.ToString());"[/codebox]
в соответствующих классах TextField.cs и TextArea.cs.

При компиляции для TextArea получаю:
[codebox]<textarea id="Feedback" style="width: 756px;" onfocus="checkFocus(this);" tabindex="0" rows="5" maxlength="400" name="Feedback">[/codebox]

Но в отличии от поля TextField (у которого тоже maxlength="400"), при вводе текста в TextArea при достижении значения "maxlength" ввод не прерывается, т.е. текст можно вводить пока не надоест.

есть вариант ввернуть проверку с отбрасыванием лишних данных в поле TextArea функцией Limit:
[codebox]function Limit() {
if (this.StrValue.Length > this.MaxLength) {
this.Value=this.StrValue.Substring (0, this.MaxLength);
}
}[/codebox]

но при этом не знаю как сделать, чтобы эта функция вызывалась при каждом вводе (нажатии на клавишу) в поле TextArea?

p.s. работаю в MS Visual Studio на C#
 
S

ShadowCoder

Блондин
но при этом не знаю как сделать, чтобы эта функция вызывалась при каждом вводе (нажатии на клавишу) в поле TextArea?
- А яваскриптом пробовали обрабатывать события TextArea: onkeydown, onkeyup, onkeypress?
 
I

Infineon

Спасибо, так и сделал )
Правда не очень корректно работает ограничение длины: при высчитывании длины поля не учитываются спец. символы (\n и подобные). А вот при сохранении в базу данных поле обрезается уже с их учётом. Получается что пользователю текст позволили ввести, но потом конец текста обрезали.
Как бороться?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!