【问题标题】:maxlength of input tag with type=text using html5 in android webview not working在android webview中使用html5的type = text的输入标签的最大长度不起作用
【发布时间】:2015-03-27 17:16:24
【问题描述】:

我可以在 android webview 中使用 html5 输入超过指定最大长度的输入标签,type=text。当失去焦点/模糊时,值将被修剪为最大长度。

例如

<input type="text" maxlength="5" id="hahaha">

 value entered = abcdefghij
 on blur/lostfocus value displayed = abcde.

无论如何限制用户输入比maxlength更多的字符,而不是在用户输入内容后修剪内容。在IOS中它工​​作正常。

【问题讨论】:

  • @Blauharley 类型是文本而不是数字

标签: javascript jquery html webview


【解决方案1】:

此问题可能是 Android 4.1 版本中的错误,您可以在此处看到 35264。 你可以用一些 Javascript 来解决这个问题:

<input type="text" maxlength="3" id="hahaha" onkeypress="if(this.value.length >= this.getAttribute('maxlength') return false;" />

或 JQuery:

$(function() {
    max_length = Number($("#hahaha").attr("maxlength"));
    $("#hahaha").attr("onkeypress", "if(this.value.length >= max_length) return false;");
});

【讨论】:

  • 亲爱的@neliojrr onkeypress 事件没有被触发,在 android 浏览器中
  • 尝试使用keyup事件和substr方法。看看这个解决方案:link
  • @Nelio 返回 false;在输入超过最大长度的字符时不限制用户......如果用户超过最大长度,有没有办法限制用户输入字符
  • @Meena 看看这个解决方案jsfiddle.net/awns9167/1
【解决方案2】:

聚会有点晚了,但正如 neliojrr 提到的,您可以使用 javascript/jquery 更正此问题。但是,我很想把它变得更通用:

$('input[maxlength]').on('keydown', function(event) {
    var $this = $(this);
    if ($this.val().length > parseInt($this.attr('maxlength'), 10)) {
        event.preventDefault();
    }
});

【讨论】:

  • event.preventDefault();在输入超过 maxlength 的字符时不限制用户...@paddybasi 有没有办法限制用户在超过 maxlength 时输入字符
【解决方案3】:

感谢@paddybasi,它对我有用。只是一个小的修正。 keydown 事件似乎在 android 中不起作用。所以我们需要将事件更改为“textInput”。

$('input[maxlength],textarea[maxlength]').on('textInput', function (event) {
        var $this = $(this);
        if ($this.val().length >= parseInt($this.attr('maxlength'), 10)) {
            event.preventDefault();
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多