Применение атрибута maxlength в мобильных браузерах

У меня есть текстовый ввод с максимальной длиной:

<input type="text" name="name" maxlength="50">

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

Есть ли способ заставить мобильные браузеры применять maxlength? Я открыт для использования JavaScript и/или jQuery в решении.

Ответ 1

Попробуйте следующее:

var $input = $('input')
$input.keyup(function(e) {
    var max = 5;
    if ($input.val().length > max) {
        $input.val($input.val().substr(0, max));
    }
});

jsFiddle здесь: http://jsfiddle.net/fttk2/1/

Ответ 2

var max = 1

input.addEventListener('keyup', function (event) {
    event.target.value = event.target.value.substring(0, max)
})

Ответ 3

Универсальный способ jQuery для принудительного применения указанного maxlength поля формы. (Мне это нужно для sessionStorage, localStorage и param suprides.) Код оптимизирован для удобства чтения.

$('input').on('change', function () {
  var max = $(this).attr('maxlength'),
      val = $(this).val(),
      trimmed;

  if (max && val) {
    trimmed = val.substr(0, max);
    $(this).val(trimmed);
  }
});

Ответ 4

var maxLength = 10;
var field = $('#myinput');
field.keydown( function(e)
{
    if ( $(this).val().length >= maxLength ) e.preventDefault();
});

Ответ 5

Я бы предложил нечто более простое. Профили не работали для меня, если не было места, добавленного для поля, чтобы забрать его... или если я сразу же попал в submit, он все равно передал информацию.

if($(".input") > 20){$(".input") = input.slice(0,20)};