我一直在使用'-wap-input-format'CSS属性强制使用“* N”进行数字输入。 307这适用于我的SonyEricsson C702,但在Windows Mobile IE,Windows Mobile与Opera或SonyEricsson P1i上都有效。
答案 0 :(得分:2)
你不需要在Opera或iphone上使用javascript,也可能不需要android。只需使用HTML5中的“数字”输入类型即可。它将回退到不支持它的浏览器上的文本输入。
答案 1 :(得分:0)
我的建议也是添加一些Javascript。 移动Opera以及iPhone,Minimo(迷你mozilla)等都可以理解Javascript,至少在一定程度上。
function noNumbers(e) {
var keynum;
var keychar;
var numcheck;
if(window.event) // IE
{
keynum = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
}
if((keynum >= 48) && (keynum <= 57)) {
return(true);
}
var good_codes = [8, 14, 15, 37, 38, 39, 40];
for(i = 0; i < good_codes.length; i++) {
if(good_codes[i] == keynum) {
return(true);
}
}
return(false);
}
希望这有帮助! :)
答案 2 :(得分:0)
您所谈论的格式是WCSS(WAP CSS)属性,因此不受广泛支持 - 尤其是在现代移动设备中。
-wap-input-format在任何情况下都不能很好地发挥作用。例如,让用户填写带小数(“2.50”)的数字输入几乎是不可能的(closest solution: -wap-input-format: "*n")。
然而,虽然不能依赖该属性进行验证(这仍然需要服务器端,无论如何,正如Darasd所说),它可以通过自动将移动设备的输入切换为数字来帮助用户。 / p>
通过在输入字段的名称中添加“zip”或“phone”(例如“myfield_zip”),对于iPhone来说同样是said to be possible。是的,我知道,这很笨重。
我仍然使用这两种技巧,因为它会触发一个很好的可供性(如果你愿意,你可以使用Javascript除外)。
答案 3 :(得分:0)
<input type='tel' />
将在Android和iPhone默认浏览器以及Android版Chrome上显示数字小键盘。它不能在Windows Phone 7.5上运行,但应该在Windows Phone 8上运行,因为WP8的浏览器基于IE9。
使用
<input type='number' />
也会这样做,但会自动删除前导零。