html中输入的maxlength属性在HTC One M7上不起作用

Lon*_*Dao 8 html android input maxlength htc-android

我有一个简单的输入字段,其maxlength ="2"属性.代码如下所示:

<input id="txtLoginName" maxlength="2">
Run Code Online (Sandbox Code Playgroud)

它适用于大多数Android设备.但是,在HTC One M7上,它不起作用.在这个设备上,它只允许我输入任意数量的字符.

有什么建议吗?我认为到目前为止它应该是一个特定于设备的问题.

提前致谢.

小智 6

试试这个:

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


小智 5

我对这个话题的发现:

这个问题不是 Android 特有的,而是 Android 键盘的问题。maxlength 适用于谷歌键盘。maxlength 不适用于三星键盘。=> 见https://github.com/ionic-team/ionic/issues/11578#issuecomment-323403990

更重要的是 - 这不是错误,而是一个功能:


Ada*_*hes 2

我在几个项目中注意到了这个问题。我认为某些版本的 Android 对 maxlength 的支持很差。

我的解决方案是使用 jQuery keydown 函数来检查字符数量,并在达到最大值时防止再输入。

$('#inputWithMaxLength').keydown(function (e) {

    var inputLength = jQuery(this).val().length;

    if(inputLength >= 10) {
        e.preventDefault();
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我确信您可以更改此设置,以便它搜索具有 maxlength 属性的任何输入并动态创建 jQuery 备份。我不确定这是否会相当慢。