Ограничить количество строк в textarea

Davahkiin

Постоялец
Регистрация
20 Мар 2014
Сообщения
90
Реакции
4
Может кто подскажет как ограничить количество строк в textarea? или есть готовый пример
 
Попробуйте следующий раз поискать в поисковике решение. Надеюсь поможет вот это решение

Вставить в шаблон
HTML:
Описание: <textarea name="textarea" id="textarea" onclick="length_check(256, 'textarea', 'counter')" onkeyup="length_check(256, 'textarea', 'counter')" ></textarea>
Осталось символов: <span id="counter">256 / 256</span>

<script language="JavaScript" type="text/javascript">
function length_check(len_max, field_id, counter_id) {
    var len_current = document.getElementById(field_id).value.length;
    var rest = len_max - len_current;
    if (len_current > len_max )
    {    document.getElementById(field_id).value =
        document.getElementById(field_id).value.substr (0, len_max);
        if (rest < 0) { rest = 0;}
        document.getElementById(counter_id).firstChild.data = rest + ' / ' + len_max;
        alert('Максимальная длина содержимого поля: ' + len_max + ' символа(-ов)');    }
    else
    {    document.getElementById(counter_id).firstChild.data = rest + ' / ' + len_max;    }
}
</script>

Источник
Для просмотра ссылки Войди или Зарегистрируйся
Здесь ещё есть: Для просмотра ссылки Войди или Зарегистрируйся
 
немного по другому сделал, мне нужно ограничение не по количеству символов, а по количеству строк
Код:
    $( document ).ready(function() {
      $('textarea.limited').bind('input propertychange', function() {
                function limitTextareaLine(e) {
                    if(e.keyCode == 13 && $(this).val().split("\n").length >= $(this).attr('rows')) {
                        return false;
                    }
                }
                $(function() {
                  $('textarea.limited').keydown(limitTextareaLine);
                });
        });
        });
 
Почему вы просто не воспользуетесь html свойством maxlength="xxx"?? Ведь пользователь, которому нужно ввести больше, просто отключит javascript.
 
немного по другому сделал, мне нужно ограничение не по количеству символов, а по количеству строк
Код:
    $( document ).ready(function() {
      $('textarea.limited').bind('input propertychange', function() {
                function limitTextareaLine(e) {
                    if(e.keyCode == 13 && $(this).val().split("\n").length >= $(this).attr('rows')) {
                        return false;
                    }
                }
                $(function() {
                  $('textarea.limited').keydown(limitTextareaLine);
                });
        });
        });
Желательно действительно дополнительно использовать maxlength="xxx" (примерно сумма количества символов в каждой строке) и сделать проверку на количество символов (строк тоже можно реализовать, но геморно) при обработке данных формы. Когда что-то запрещают, то у некоторых чешутся руки это ограничение обойти, а так это уже не получится.
И еще, если делаете какие-то ограничения в форме через js, то и сабмит формы лучше делать через js и выводить предупреждение, если он отключен.
 
Последнее редактирование:
textarea же прямо на странице вроде мышью можно раздвигать как попало, как тут количество строк ограничить? Наверное только по количеству символов
 
Почему вы просто не воспользуетесь html свойством maxlength="xxx"?? Ведь пользователь, которому нужно ввести больше, просто отключит javascript.
Если уж пользователю захочется ввести больше, то maxlength игнорируется точно так же :)
Финальные проверки в любом случае нужны во время обработки введенного, а эти скорее защита от дурака.
 
Назад
Сверху