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

Тема в разделе "Web 2.0, AJAX, Ruby, RSS технологии", создана пользователем Infineon, 21 июл 2008.

  1. Infineon

    Infineon New Member

    Регистрация:
    21 июл 2008
    Сообщения:
    2
    Симпатии:
    0
    В разрабатываемом веб-приложении есть поля "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#
     
  2. ShadowCoder

    ShadowCoder Гость

    Блондин
    - А яваскриптом пробовали обрабатывать события TextArea: onkeydown, onkeyup, onkeypress?
     
  3. Infineon

    Infineon New Member

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

Поделиться этой страницей