Css 移动网站的强制数字输入

Css 移动网站的强制数字输入,css,mobile-website,Css,Mobile Website,我一直在使用“-wap input format”CSS属性强制使用“*N”进行数字输入。307这在我的SonyEricsson C702上有效,但在Windows Mobile IE、Windows Mobile with Opera或SonyEricsson P1i上失败 我的建议也是添加一些Javascript。 MobileOpera和iPhone、Minimo(MiniMozilla)等都可以理解Javascript,至少在某种程度上是这样 function noNumbers(e)

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

我的建议也是添加一些Javascript。 MobileOpera和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);
}
函数非编号(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您所说的格式是(WAP-CSS)属性,因此,没有得到广泛支持,尤其是在现代移动设备中

在任何情况下都不能很好地工作。例如,让用户用小数(“2.50”)填写数字输入几乎是不可能的()

然而,虽然该属性不能用于验证(正如Darasd所说,在任何情况下,它仍然需要服务器端),但它可以通过自动将移动设备的输入切换为数字来帮助用户

iPhone也一样,在输入字段的名称中添加“zip”或“phone”(例如“myfield_-zip”)。是的,我知道,这很笨重


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

你在Opera或iphone上不需要Javascript,可能也不需要android。只需使用HTML5中的“数字”输入类型。它会在不支持它的浏览器上返回到文本输入。


<input type='tel' /> 
将在Android和iPhone的默认浏览器和Android的Chrome浏览器上显示数字键盘。它不适用于Windows Phone 7.5,但应该适用于Windows Phone 8,因为WP8的浏览器基于IE9

使用



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

尝试过。放弃了。正如Tom所说,你可以尝试javascript,它将适用于高端手机,你已经尝试过的css将适用于其他一些手机,但许多手机根本不合作,对此无能为力。服务器端验证将无法完成作为答案。客户端验证仅用于方便(即即时反馈)。假设客户端“检查”的数据是干净的、非邪恶的是一种等待发生的意外。必须进行服务器端验证,以确保数据符合您要求的格式。
<input type='number' />