Ограничение на максимальное число вводимых символов в текстовое поле

389
20 апреля 2022, 02:10

Вот HTML

<div class="text_box_2">
    <div class="count_text_box">
        <p data-count-textarea = "tx_1"><span class="countSimbols">0</span>/<span data-count-num = "10">50</span></p>
    </div>
    <div class="textarea_wrapp">
        <textarea data-textarea = "tx_1" placeholder="Опишите суть предложения и что входит в стоимость работы"></textarea>
    </div>
</div>

Вот js

$("[data-textarea]").on("keydown", function() {
  textareaName = $(this).attr("data-textarea");
  countTextareaBox = $("[data-count-textarea = '"+textareaName+"']");
  maxVal = countTextareaBox.find("[data-count-num]").attr("data-count-num");
  currentVal = $(this).val().length;
  str = $(this).val();
  if(currentVal > maxVal) {
    str.slice(0, -1);
    $(this).val(str);
  }
  countTextareaBox.find(".countSimbols").html(currentVal);
});

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

Answer 1

Используйте атрибут maxlength

<textarea maxlength="50" rows="5" cols="10"></textarea>

В примере maxlength="50", означает 50 символов максимально

Пример с копией Вашего кода: https://jsfiddle.net/3q6Lj5cw/ и измененный: https://jsfiddle.net/j4L6te5a/

На мой взгляд, в данном случае, лучше подойдет keyup event

READ ALSO
Как применить анимацию притяжения/отталкивания частиц?

Как применить анимацию притяжения/отталкивания частиц?

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

260
как реализовать таймер обратного отчета на form т.е если время вышло отправить форму?

как реализовать таймер обратного отчета на form т.е если время вышло отправить форму?

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

236
Как удалить запись из базы данных?

Как удалить запись из базы данных?

Я получаю все данные таблицы в запросе в том числе и idКак можно этот id использовать для другого запроса

307