maxlength=5 如果输入类型=数字则不起作用

maxlength=5 not working if input type=number

这真令人沮丧!

当输入类型是text并且我给maxlength作为5时,它不允许我输入超过5个字符

<input type="text"  maxlength="5" />

如果我将输入类型设为 number,并将 maxlength 设为 5,是否允许超过 5 个数字?

<input type="number" maxlength="5" pattern="[0-9]*" />

我是不是漏掉了什么?

PS:这是针对移动响应网站!

而不是 maxlength 使用 max

<input type="number" min="1" max="10000" />

更新

小jQuery插件

(function ($) {
    $.fn.maxlength = function (length) {
        return this.on('keydown', function () {
            var maxlength = length || parseInt($(this).attr('maxlength'), 10) ;
            if (maxlength && $(this).val().length >= maxlength) {
                $(this).val($(this).val().slice(0, maxlength - 1));
            }
        });
    };
}($));

Example

尝试使用 max...

<input type="number" max="99999" />

编辑:显示验证

<form id='FormValidation'>
<input id="myNum" type="number" min="1" max="99999" />
<input type="text"  maxlength="5" />
    <input type="submit" />
</form>

尝试添加一个大于 99999 的数字并点击提交,检查更新后的 fiddle.

这个 jquery 也有帮助...

$('#myNum').keyup( function(e){
    var max = $('#myNum').attr('max').length;
    if ($(this).val().length >= max) { 
        $(this).val($(this).val().substr(0, max));
    }
});

maxlength替换为max

 // Max Length = 5
<input type="number" max="99999" />
// length between 1 to 5
<input type="number" min="1" max="99999" />

并且您可以添加一个 max 属性,该属性将指定您可以插入的最大数量

<input type="number" max="999" />

如果您同时添加最大值和最小值,您可以指定允许值的范围:

<input type="number" min="1" max="999" />

更新了答案。就是这么简单!

<input type="number" id="nbr"/>

<input type="text"  maxlength="5" />

$(document).on('keypress','#nbr', function(e){
if($(this).val().length >= 5)
   {
       e.preventDefault();
   }

});