背景
在Samsung Note和其他Andriod设备上使用默认的Android浏览器(互联网)时,使用类型"数字"编辑输入字段时键盘是一个数字键盘,上面没有小数点按钮!
<input id="x" type="number" value="" />
我注意到美国银行Andriod应用程序在数字键盘上没有小数点。这就是他们处理它的方式。
我想在我的网站上模仿这个将用于移动设备的功能。
来自demo的mplungjan非常接近。我想一直显示两个小数位,这个解决方案显示直到第四个字符按下:
$("#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;
}
});
一个明显的解决方案就是更改输入类型并使用标准全键盘显示。
答案 0 :(得分:1)
我认为这对您使用简单的javascript
有用HTML
<input type="text" id="number" onchange="formatNumber()"/>
JS
function formatNumber(){
var number = document.getElementById('number').value;
document.getElementById('number').value = ((+number)/100).toFixed(2);
}
但是当你离开文本框时这将有效。
答案 1 :(得分:1)
我做了一些研究。
您可以编写一个智能代码,首先检查用户是否已停止输入值,然后将输入转换为所需的形式,如下所示:
HTML:
<input type="text" id="num" />
JS代码:
var timeoutReference;
$(document).ready(function() {
$('input#num').keypress(function() {
var _this = $(this);
if (timeoutReference) clearTimeout(timeoutReference);
timeoutReference = setTimeout(function() {
number = document.getElementById('num').value;
document.getElementById('num').value = ((+number)/100).toFixed(2);
}, 1000);
});
});
直播Demo
请参阅this SO答案以获取更多解释。
答案 2 :(得分:0)
试试这个,DEMO这里
$('#test').change(function() {
var testValue = parseInt($('#test').val());
$('#test').val((testValue/100));
});
答案 3 :(得分:0)
查看这个JSFiddle演示。这将展示你想知道的javascript方面:
Click here to visit the JSFiddle demo
他们获得神奇数字的关键是这一行:
var output = parseInt(document.getElementById("inputID").value)*.01;
document.write(output);
答案 4 :(得分:0)
此解决方案模仿问题中描述的功能和用例。我将type和value属性添加到输入字段。
<input id="txtamt" maxlength="8" type=numberic value="0.00" />
修改代码以格式化任意长度的输入字符串(删除条件语句)。
$("#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(".", "");
var val = parseFloat(str.value);
var val1 = (val / 100).toFixed(2);
str.value = val1;
});