3

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

4

4 回答 4

2

You don't need javascript on Opera or iphone and probably not android either. Just use the "number" input type, from HTML5. It'll fall back to a text input on browsers that don't support it.

于 2010-04-01T00:11:49.670 回答
0

我的建议也是添加一些 Javascript。Mobile Opera 以及 iPhone、Minimo (mini-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

于 2009-08-29T14:16:25.443 回答
0

您正在谈论的格式是WCSS (WAP CSS) 属性,因此并没有得到广泛支持——尤其是在现代移动设备中。

-wap -input-format在任何情况下都不能很好地工作。例如,让用户用小数(“2.50”)填写数字输入几乎是不可能的(最接近的解决方案:-wap-input-format: "*n")。

然而,虽然不能依赖该属性进行验证(这仍然需要在服务器端,无论如何,正如 Darasd 所说),它可以通过自动将移动设备的输入切换为数字来帮助用户。

据说通过将“zip”或“phone”添加到输入字段的名称(例如“myfield_zip”),对于 iPhone来说也是可能的。是的,我知道,这很笨拙。

我仍然会使用这两种技巧,因为它触发了很好的启示(如果你愿意,除了它们之外,你还可以使用 Javascript)。

于 2009-10-12T12:27:24.603 回答
0
<input type='tel' /> 

will bring up a numeric keypad on Android and iPhone default browsers and Chrome for Android. It does not work on Windows Phone 7.5, but should on Windows Phone 8 since WP8's browser is based on IE9.

Using

<input type='number' /> 

will do this too, but will automatically remove leading zeros.

于 2012-11-07T17:38:55.333 回答