如何限制可以在iPhone上的HTML5号码输入字段中输入的字符数

Len*_*and 20 html iphone html5 input jquery-mobile

似乎"maxlength","min"或"max"HTML属性都没有对iPhone进行以下标记所需的效果:

 <input type="number" maxlength="2" min="0" max="99"/>
Run Code Online (Sandbox Code Playgroud)

这个数字只是在iPhone 4上键入时,而不是限制数字的数量或输入的数字的值.这个标记适用于我们测试的大多数其他手机.

是什么赋予了?

任何解决方法?

如果它对解决方案很重要,我们使用jQuery mobile.

谢谢!

小智 33

JS

function limit(element)
{
    var max_chars = 2;

    if(element.value.length > max_chars) {
        element.value = element.value.substr(0, max_chars);
    }
}
Run Code Online (Sandbox Code Playgroud)

HTML

<input type="number" onkeydown="limit(this);" onkeyup="limit(this);">
Run Code Online (Sandbox Code Playgroud)

如果您使用的是jQuery,可以稍微整理一下JavaScript:

JS

var max_chars = 2;

$('#input').keydown( function(e){
    if ($(this).val().length >= max_chars) { 
        $(this).val($(this).val().substr(0, max_chars));
    }
});

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

HTML

<input type="number" id="input">
Run Code Online (Sandbox Code Playgroud)

  • 使用 `substring()` 而不是 `substr()`,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr。 (4认同)

Beh*_*adi 6

你可以使用这个代码:

<input type="number" onkeypress="limitKeypress(event,this.value,2)"/>
Run Code Online (Sandbox Code Playgroud)

和js代码:

function limitKeypress(event, value, maxLength) {
    if (value != undefined && value.toString().length >= maxLength) {
        event.preventDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)