在移动浏览器上实施maxlength属性

时间:2013-07-03 04:05:09

标签: javascript jquery html input maxlength

我有一个最大长度的文本输入:

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

这在我尝试过的所有桌面浏览器上运行良好,但似乎并未在移动浏览器上强制执行最大长度。

有没有办法让移动浏览器强制执行maxlength?我愿意在解决方案中使用JavaScript和/或jQuery。

5 个答案:

答案 0 :(得分:7)

试试这个:

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/

答案 1 :(得分:1)

var max = 1

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

答案 2 :(得分:0)

通用jQuery方式强制执行表单字段的maxlength。 (我需要它用于sessionStorage,localStorage和param覆盖。)针对可读性进行了优化的代码。

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

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

答案 3 :(得分:0)

此问题是因为在键盘上启用了预想性文本,请禁用它,然后重试

答案 4 :(得分:-1)

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