仅限数字键盘

时间:2016-05-26 19:44:35

标签: javascript jquery html

客户需要在网站上有(美国)邮政编码字段,但此字段只能接受5位数字,并且必须在iOS和Android中触发数字小键盘。

此外必须使用外部数字键盘(在笔记本电脑上)......并且必须是文本字段。

似乎我尝试的每种方法(keyCode,pattern等)都在一个浏览器或设备上失败了......任何建议?

考虑:

1)不能使用插件

2)不需要接受xxxxx-xxxx(只是前5个)

编辑:这不在WebView中,它可以提供额外的资源来触发数字小键盘。此外,这需要保留为文本字段(不能更改为tel或number)。

此外,人们认为这是重复的问题没有标记答案,因此,它也没有解决方案。

具体而言,这需要适用于Chrome,Firefox,IE,iOS和Android。

3 个答案:

答案 0 :(得分:0)

您可以使用

HTML5 has input type number将输入限制为仅限数字。

<input type="number" name="your-id" />

答案 1 :(得分:0)

您可以使用HTML5 number输入。

<input type="number" min="1" max="99999">

如果您只能使用文字字段,可以使用:

<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57' maxlength="5" minlength="5"></input>

答案 2 :(得分:-1)

这是一个跨浏览器的键盘lol this answer

只需在html中创建自己的键盘,然后在javascript中添加它的功能。

HTML

<body onload="emptyCode();">
<form method="get">
<table id="keypad" cellpadding="5" cellspacing="3">
    <tr>
        <td onclick="addCode('1');">1</td>
        <td onclick="addCode('2');">2</td>
        <td onclick="addCode('3');">3</td>
    </tr>
    <tr>
        <td onclick="addCode('4');">4</td>
        <td onclick="addCode('5');">5</td>
        <td onclick="addCode('6');">6</td>
    </tr>
    <tr>
        <td onclick="addCode('7');">7</td>
        <td onclick="addCode('8');">8</td>
        <td onclick="addCode('9');">9</td>
    </tr>
    <tr>
        <td></td>
        <td onclick="addCode('0');">0</td>
        <td></td>
    </tr>
</table>
<input type="text" name="code" value="" maxlength="4" class="display" readonly="readonly" onfocus="showKeys()"/>
<p id="message">There is your 5 numbers!</p>
</form>
</body> 

CSS

body {
    text-align:center; 
}   
#keypad {margin:auto; margin-top:20px; visibility: hidden}

#keypad tr td {
    vertical-align:middle; 
    text-align:center; 
    border:1px solid #000000; 
    font-size:18px; 
    font-weight:bold; 
    width:40px; 
    height:30px; 
    cursor:pointer; 
    background-color:#666666; 
    color:#CCCCCC;}
#keypad tr td:hover {background-color:#999999; color:#FFFF00;}

.display {
    width:130px; 
    margin:10px auto auto auto; 
}
#message {
    text-align:center; 
    color:#009900; 
    font-size:14px; 
    font-weight:bold; 
    display:none;
}

的Javascript

function showKeys(){
    document.getElementById("keypad").style.visibility = "visible";
}
function addCode(key){
    var code = document.forms[0].code;
    if(code.value.length < 5){
        code.value = code.value + key;
    }
    if(code.value.length == 5){
        document.getElementById("message").style.display = "block";
        setTimeout(submitForm,1000);    
    }
}

function emptyCode(){
    document.forms[0].code.value = "";
}