客户需要在网站上有(美国)邮政编码字段,但此字段只能接受5位数字,并且必须在iOS和Android中触发数字小键盘。
此外必须使用外部数字键盘(在笔记本电脑上)......并且必须是文本字段。
似乎我尝试的每种方法(keyCode,pattern等)都在一个浏览器或设备上失败了......任何建议?
考虑:
1)不能使用插件
2)不需要接受xxxxx-xxxx(只是前5个)
编辑:这不在WebView中,它可以提供额外的资源来触发数字小键盘。此外,这需要保留为文本字段(不能更改为tel或number)。
此外,人们认为这是重复的问题没有标记答案,因此,它也没有解决方案。
具体而言,这需要适用于Chrome,Firefox,IE,iOS和Android。
答案 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 = "";
}