强制移动网站的数字输入

时间:2009-04-01 13:28:51

标签: css mobile-website

我一直在使用'-wap-input-format'CSS属性强制使用“* N”进行数字输入。 307这适用于我的SonyEricsson C702,但在Windows Mobile IE,Windows Mobile与Opera或SonyEricsson P1i上都有效。

4 个答案:

答案 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);
}

希望这有帮助! :)

metafilter.com

答案 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' /> 

也会这样做,但会自动删除前导零。