代码之家  ›  专栏  ›  技术社区  ›  Gabriël

强制为移动网站输入数字

  •  3
  • Gabriël  · 技术社区  · 16 年前

    我一直在使用“-wap input format”css属性强制使用“*n”进行数字输入。307这在我的Sonyericsson C702上有效,但在Windows Mobile IE、Windows Mobile with Opera或Sonyericsson P1I上失败。

    4 回复  |  直到 12 年前
        1
  •  0
  •   Tom    16 年前

    我的建议也是添加一些javascript。 移动Opera以及iPhone、Minimo(MiniMozilla)等至少在某种程度上可以理解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
  •  2
  •   dsas    15 年前

    您不需要在Opera或iPhone上使用javascript,也可能不需要Android。只需使用HTML5中的“数字”输入类型。它将返回到不支持它的浏览器上的文本输入。

        3
  •  0
  •   Ilya    15 年前

    你说的格式是 WCSS (wap-css)属性,也就是说,并没有得到广泛的支持,尤其是在现代移动设备中。

    这个 -wap-input-format 在任何情况下都不能很好地工作。例如,让用户用小数(“2.50”)填充数字输入几乎是不可能的。( closest solution: -wap-input-format: "*n" )

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

    同样是 said to be possible 对于iPhone,在输入框的名称中添加“zip”或“phone”(例如“myfield_-zip”)。是的,我知道,这是笨重的。

    我仍然会使用这两个技巧,因为它会触发一个很好的负担(如果你想要的话,你可以在它们之外使用javascript)。

        4
  •  0
  •   Ivy    12 年前
    <input type='tel' /> 
    

    将在Android和iPhone的默认浏览器和Android的Chrome上显示数字键盘。它不适用于WindowsPhone7.5,但应该适用于WindowsPhone8,因为WP8的浏览器基于IE9。

    使用

    <input type='number' /> 
    

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