jQuery - установить максимальную длину для текстовой области - PullRequest
2 голосов
/ 27 мая 2011

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

Требования:

  • Должно отображать текущее количество набранных символов
  • Должно оставаться точным при удержании клавиши
  • Должно оставаться точным прииспользуется возврат / удаление
  • Должен оставаться точным, когда текст в поле выделен и вырезан / удален с использованием меню, вызываемого правой кнопкой мыши
  • Должен позволять пользователю превышать ограничение (я ненавижу этокогда поле на самом деле мешает мне перейти, это усложняет его редактирование)

Есть ли плагин jQuery для этого?Или есть простой способ сделать это на javascript (метод onChange не обновляется при вводе, а keydown / keyup может иметь проблемы с изменением мыши)

На данный момент это кажется лучшим способом.это иметь функцию, которая делает то, что я хочу (проверить длину и обновить сообщение), вызвать ее с помощью keydown / keyup / change, а также опрашивать ее несколько раз в секунду.Есть ли лучший способ?

Ответы [ 2 ]

1 голос
/ 27 мая 2011

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

$(document).ready(function() {
    $("#myTextArea").live("change keydown keyup keypress", function() {
        validate();
    });
});

function validate() {
    // validates #myTextArea
}
0 голосов
/ 24 мая 2019

попробуйте

$("#textarea").on('input',function(){
    if(this.value.length > 50) {
        alert("u cant input more.");
        this.value = this.value.substring(0,50);
    }
    $('#counter').html(this.value.length + '/50');
});

может быть, этот код поможет вам

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