使用类型=文本的输入标记的最大长度使用android webview中的html5无法正常工作

时间:2015-01-28 17:21:35

标签: javascript jquery html5 webview

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

例如

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

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

无论如何限制用户输入多于maxlength的字符,而不是在用户输入内容后修剪内容。在内部监督办公室,它工作正常。

3 个答案:

答案 0 :(得分: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 = $("#hahaha").attr("maxlength");
    $("#hahaha").attr("onkeypress", "if(this.value.length >= max_length) return false;");
});

答案 1 :(得分:1)

派对有点晚了,但正如neliojrr所说,你可以使用javascript / jquery来纠正这个问题。但是,我很想把它变得更通用:

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

答案 2 :(得分:0)

感谢@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();
        }
    });