gpt4 book ai didi

javascript - 在按键或向上键或向下键时将数字转换为 float

转载 作者:行者123 更新时间:2023-11-28 02:09:15 27 4
gpt4 key购买 nike

我正在开发一个网站,我希望其中的数字按照给定的要求进行格式化,如下所示:

  • 如果我按“1”,它应该说“1”。
  • 如果我按“12”,它应该说“12”。
  • 如果我按“123”,它应该说“1.23”。
  • 如果我按“1234”,它应该说“12.34”。
  • 当我按退格键时,这个顺序也应该有效。

我自己开发的,如下:

        function Maskme(obj, evt) {

var event = (window.event) ? window.event : evt;

var str = document.getElementById("txtamt");
if (event.keyCode != 8 && event.keyCode != 13) {

if (str.value.length == 3 && str.value.indexOf(".") == -1) {
var val = parseFloat(str.value);
var val1 = (val / 100).toFixed(2);
str.value = val1;
}
else if (str.value.length > 3) {
var val = parseFloat(str.value) * 1000;
var val1 = (val / 100).toFixed(2);
str.value = val1;
}
else {
str.value = str.value;
}
}
else {
if (event.keyCode != 13) {
var str1 = parseFloat(str.value) / 10;
if (str1 != 0 && !isNaN(str1))
str.value = (str1).toFixed(2);
else
str.value = "";
}
}
}

但我遇到的问题是:

  1. 如果我快速按“123”,它会显示“12.30”或“12.3”而不是“1.23”
  2. 回到 1.23 后退格键也不起作用
  3. 最多允许在文本字段中输入 7 位数字

如果有任何现成的插件可用或任何人已经开发了这种插件,请通知我,我将不胜感激。

最佳答案

我将其更改为先替换点,然后计算非常简单:

$("#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;
}
});

演示:http://jsfiddle.net/ceJcn/7/

关于javascript - 在按键或向上键或向下键时将数字转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9410622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com