【发布时间】:2014-10-03 10:38:00
【问题描述】:
背景
在 Samsung Note 和其他 Android 设备上使用默认的 Android 浏览器(互联网)时,当使用“数字”类型编辑输入字段时,作为数字键盘的键盘上没有十进制按钮!
<input id="x" type="number" value="" />
我注意到美国银行 Andriod 应用程序的数字键盘上没有小数点。他们就是这样处理的。
- 点击字段
- 键入第一个数字“1”并字段显示 0.01
- 键入第二个数字“2”并字段显示 0.12
- 键入第三个数字“3”并字段显示 1.23
- 输入数字“4”,字段显示为 12.34
我想在我的网站上模仿这个功能,以便在移动设备上使用。
来自mplungjan 的demo 非常接近。我想一直显示两位小数,这个解决方案显示直到第四个字符被按下:
$("#txtamt").keyup(function(obj, evt) {
var event = (window.event) ? window.event : evt;
//ignore arrow keys so that user can move curser
switch(event.keyCode)
{
case 37:
case 38:
case 39:
case 40:
return;
default:
break;
}
var str = document.getElementById("txtamt");
str.value = str.value.replace(".", "");
if (str.value.length == 3) {
var val = parseFloat(str.value);
var val1 = (val / 10).toFixed(1);
str.value = val1;
}
else if (str.value.length > 3) {
var val = parseFloat(str.value);
var val1 = (val / 100).toFixed(2);
str.value = val1;
}
});
一个明显的解决方案就是改变输入类型并拥有标准的全键盘显示。
【问题讨论】:
-
你有没有尝试过自己做任何事情?
-
我不明白如果用户在输入 1 后尝试给出 123,你希望它变成 0.01 还是输入完整的 val n 然后单击某个按钮
-
您真的想在用户键入时更改输入的内容吗?我想输入“12”的图像 - 点击“1”后,内容将变为 0.01,然后当我点击“2”时,内容将变为 0.00012。
标签: javascript html