输入类型=数字无法在手机上插入负数

时间:2014-02-10 12:48:46

标签: javascript android ruby-on-rails html5 twitter-bootstrap

我正在我的手机上测试我的应用程序(带有chrome的三星galaxy note II),我的数字输入字段有问题。

在我的应用程序中,这些字段可以接受负数,并且在浏览器上一切正常,因为我有-按钮以及箭头滑块(来自html5)来选择数字。

在手机上虽然没有渲染滑块,浏览器会识别输入类型=数字,只是渲染一个简化的数字键盘,它不包含-符号,所以我没看到插入我希望的负数的方法。

我的应用程序使用twitter bootstrap 2.3.2和jquery,我不知道如何解决这个问题。

这是我的一个输入字段的代码在我的计算机上正常工作,但无法在我的手机上正确使用它们:

<input class="input-mini" data-type="distance_price" id="distance" label="false" name="distance" step="0.1" type="number" max="-0.1">

screenshot from my phone

在图像中你可以看到红色字段是如何被标记为错误的,因为它需要是负数,但我的键盘不允许我插入符号。包括-标志。 任何线索?

5 个答案:

答案 0 :(得分:12)

问题is specific to Samsung custom keyboard - 对那些认为比每个人都聪明的供应商更有说服力。以下是此问题的another example

答案 1 :(得分:5)

简而言之,没有办法让减号出现在三星Android数字输入上。以下是我遇到的一些解决方法:

1)Google键盘

用户可以安装其他键盘(如Google Keyboard)。显然,让人们安装一些东西并不理想。

enter image description here

2)否定按钮

正如@Cris已经建议的那样,添加一个否定该值的按钮。如果你有屏幕房地产那么好。

3)双点技巧

我们最终得到了一个相当丑陋的解决方法,用户可以按.两次,这将取消数字。完全不可发现,但额外的按钮不是我们的选择。

https://gist.github.com/bendytree/936f6b9b4c0e10138b7e9158b5fd05d9

答案 2 :(得分:2)

制作一个额外的输入字段。 “签名”复选框,选择自然或负整数。

然后挂钩复选框的onchange事件,以便更新数字视图以反映所选的符号。

答案 3 :(得分:0)

如果您使用值属性(值=“ - 0.1”)加载初始负值,那么您将为您预先加载减号。

<input class="input-mini" data-type="distance_price" id="distance" label="false" name="distance" step="0.1" type="number" max="-0.1" value="-1">

答案 4 :(得分:0)

如果您是由于上面的“双点技巧”停止工作而返回此处的,则似乎是对输入type =“ number”字段的处理方式进行了更新,从而使第二个“点”甚至无法注册为击键来停止双点从工作。就我而言,我将JS中的测试行更改为

if (lastkey === "." && (key === "." || e.originalEvent.inputType == "deleteContentBackward")){

创建同样精巧的“ Dot Backspace Trick”