Если достигнута максимальная длина ввода, сделайте что-нибудь

У меня есть максимальная длина 11 для поля ввода. Я хотел бы выполнить функцию jQuery, когда максимальная длина была достигнута, и пользователь продолжает пытаться печатать, поэтому вместо того, чтобы ничего не делать, он покажет сообщение.

Пожалуйста, не могли бы вы дать мне несколько советов?

Заранее спасибо!


person S.Pearson    schedule 08.11.2017    source источник
comment
вы можете использовать счетчик и показывать всплывающее сообщение, когда счетчик равен maxlength   -  person Rahul    schedule 08.11.2017
comment
Проверьте событие keyup и внутри него проверьте длину ввода. Если условие соответствует, вызовите нужный код javascript.   -  person dlopez    schedule 08.11.2017
comment
вы можете использовать событие keyup или keydown и проверить, совпадает ли длина с вашей максимальной, а затем отобразить свое сообщение   -  person Kaddath    schedule 08.11.2017


Ответы (4)


Попробуйте это: ИТ предупредит сообщение, когда пользователь наберет 11 символов.

$("input").on("keyup",function() {
  var maxLength = $(this).attr("maxlength");
  if(maxLength == $(this).val().length) {
    alert("You can't write more than " + maxLength +" chacters")
  }
})

Демо

$("input").on("keyup",function() {
  var maxLength = $(this).attr("maxlength");
  if(maxLength == $(this).val().length) {
    alert("You can't write more than " + maxLength +" chacters")
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input maxlength="11" />

person Carsten Løvbo Andersen    schedule 08.11.2017
comment
Это также срабатывает для клавиш, которые не пишут символы, например. ввод 11 символов и последующее перемещение курсора с помощью клавиш со стрелками вызывает предупреждение. Или при попытке скопировать ввод с помощью Ctrl + C. - person Marcono1234; 08.10.2019

попробуйте этот код

$(document).ready(function() {
  $("#text").keypress(function(e) {
    var length = this.value.length;
    if (length >= 11) {
      e.preventDefault();
      alert("not allow more than 11 character");
    }
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text">

person Bhargav Chudasama    schedule 08.11.2017
comment
В этом ответе отсутствует образовательное объяснение. - person mickmackusa; 26.11.2020

Вы ищете что-то вроде:

$("input").keypress(function(e){
    if(e.target.value.length==11){
        alert("maxlength reached");
    }
});

Очевидно, измените, чтобы использовать правильный селектор и оповещение/модальное всплывающее окно.

person Bijan Rafraf    schedule 08.11.2017
comment
В этом ответе отсутствует образовательное объяснение. - person mickmackusa; 26.11.2020

person    schedule
comment
В этом ответе отсутствует образовательное объяснение. - person mickmackusa; 26.11.2020
comment
Похоже, это не работает - person Tiago Rangel de Sousa; 10.04.2021