Android浏览器输入类型编号

时间:2013-02-18 10:56:37

标签: javascript android html html5 android-browser

在Android浏览器(4.03)中出现以下标记问题。

<html> 
<body> 
Androind 4.03 Browser test page<br />
Type .9 in the input field below and click/tap button below.<br />
Browser validation is clearing contents in input field.<br /></br/>


<input type="number" pattern="[0-9\.]*" step="0.1" min="0.0"></input> <br /><br /><br />

<input type="button" value="Validate" />

</body>
</html>

我希望数字键盘在焦点上,并且它可以与iphone和androind 2.x浏览器一起使用。 但是当我输入小于1的小数,如.9或.1时,它会验证onblur并清除输入字段。

我希望输入接受任何数字和小数......

Run code sample here

1 个答案:

答案 0 :(得分:1)

旧帖子,但我也遇到了这个问题。

我为解决这个问题所做的就是抓住'。'在keydown上(keyup在android上运行良好,但在IOS上引起了问题),并在之前将值设置为0。被申请;被应用。 然而,我注意到,至少在android浏览器上,这干扰了在此之后完全删除数字的能力(如果你要退格),所以我也必须抓住它。

// within a keydown handler for the input, 
// where "this" is the input, and "e" is the event

// make it 0 before the . gets applied
if((e.keyCode == 190 || e.keyCode = 46)
    && (!this.value || this.value == '.'))
{
    this.value = 0;
    return;
}

// ...but that screws up the cursor position on
// some browsers, so handle the backspace 
if(e.keyCode == 8 && this.value == '0.')
{
    this.value = '';
    return;
}

感觉很讨厌,但似乎有效。