如何使html5文本字段显示数字键盘?

时间:2013-09-24 12:17:41

标签: javascript android jquery html5 cordova

的PhoneGap>机器人

我知道我可以使用type="number"来显示数字键盘,但问题是我想将输入重新格式化为用户键入的价格。所以它将采用美元和美分的格式(如$343,23.50)和type="number"字段不允许使用除数字字符以外的字段。

所以我想要一个文本字段,但它应该显示数字键盘。有可能吗?

4 个答案:

答案 0 :(得分:3)

对于全包解决方案,我认为除非你使用type =“text”并使用onchange格式函数,否则你运气不好。但是,您可以使用如下所示的数字字段,它将为您提供两位小数,然后将美元符号放在输入字段的前面。

<div>$<input type="number" step="0.01"/></div>

答案 1 :(得分:3)

对于Android,您通常需要type="number"来默认使用数字键盘。 (有些人会根据iPhone的价值来解决这个问题。)在键入时,无法在type="number"中显示非数字。要在键入时显示,您需要type="text",然后您可以使用现有插件(如autoNumeric)在键入时进行格式化,但随后您将继续按下默认为非数字键盘,通常在每个按键上。

您的最佳解决方案可能是type="number"进行编辑并切换到type="text"或其他字段,以便在字段没有焦点或同时显示格式。和/或,您可以检测浏览器是否在具有默认键盘问题的设备上,如果没有,您可以继续使用type="text"并在进行时格式化。我见过的其他解决方法是微调器(不适用于信用卡这样的大数字)或带有伪键盘的小部件。

如果不恰当的话,我最近完成了一个type="number"插件,以帮助解决type="number" Android问题,并将网站放在一起分享。很高兴将URL私有转发给您,(插件可下载并且API已详细记录)但我不想在此处发布该网站,直到我完成了页面的设置。当它准备好包含URL时,很高兴回来编辑这个答案。

答案 2 :(得分:1)

type =“number”的问题是所有浏览器都无法识别。

您可以使用输入掩码来设置帖子的格式 有几个插件可以做到这一点 对于您的问题,maskMoney看起来合适。

答案 3 :(得分:0)

我正在使用Jquery,试试这个,我编写的方式是在点击文本字段时它会显示数字键盘,你可以根据需要进行修改

<强>代码:

<input id="phone" placeholder="Phone Number" name="phoneno" type="tel" value="" ></input>

使用下拉列表,如美元,电话索引号+91等所需字符,

Example