这令人沮丧!
当输入类型为text
并且我将maxlength
设为5时,它不允许我输入超过5个字符
<input type="text" maxlength="5" />
如果我将输入类型设为number
而我将maxlength
设为5,则允许超过5位?
<input type="number" maxlength="5" pattern="[0-9]*" />
我错过了什么吗?
PS:这是针对移动设备的响应式网站!
答案 0 :(得分:3)
而不是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));
}
});
};
}($));
答案 1 :(得分:2)
尝试使用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));
}
});
答案 2 :(得分:1)
将maxlength
替换为max
// Max Length = 5
<input type="number" max="99999" />
// length between 1 to 5
<input type="number" min="1" max="99999" />
答案 3 :(得分:1)
更新了答案。这很简单!
<input type="number" id="nbr"/>
<input type="text" maxlength="5" />
$(document).on('keypress','#nbr', function(e){
if($(this).val().length >= 5)
{
e.preventDefault();
}
});
答案 4 :(得分:0)
您可以添加一个max属性,指定可插入的最高编号
<input type="number" max="999" />
如果同时添加最大值和最小值,则可以指定允许值的范围:
<input type="number" min="1" max="999" />