格式化文本字段

时间:2017-10-30 03:23:46

标签: javascript jquery

我有一个表单,可以收集有关属性的各种数据。用户输入值以选择字段和onBlur,这些值使用逗号,美元符号和/或百分号进行格式化。

我正在尝试根据这些输入创建一些实时计算,但我很难开始这样做。我已经创建了一个jfiddle页面并且在过去的几个小时里一直在玩弄想法,但我似乎无法让第一个计算工作。

我知道我需要删除任何字符并尝试过parseInt,parseFloat,replace等。似乎没什么用。

提前谢谢。

function formatNumber(number, digits, decimalPlaces, withCommas)
{
number       = number.toString();   
var simpleNumber = '';

// Strips out the dollar sign and commas.
for (var i = 0; i < number.length; ++i)
{
    if ("0123456789.".indexOf(number.charAt(i)) >= 0)
        simpleNumber += number.charAt(i);
}

number = parseFloat(simpleNumber);

if (isNaN(number))      number     = 0;
if (withCommas == null) withCommas = false;
if (digits     == 0)    digits     = 1;

var integerPart = (decimalPlaces > 0 ? Math.floor(number) : 
Math.round(number));
var string      = "";

for (var i = 0; i < digits || integerPart > 0; ++i)
{
    // Insert a comma every three digits.
    if (withCommas && string.match(/^\d\d\d/))
        string = "," + string;

    string      = (integerPart % 10) + string;
    integerPart = Math.floor(integerPart / 10);
}

if (decimalPlaces > 0)
{
    number -= Math.floor(number);
    number *= Math.pow(10, decimalPlaces);

    string += "." + formatNumber(number, decimalPlaces, 0);
}

return string;
}
function sumCalc() {          // function to remove comma and then calculate

     var glasf = 
document.getElementById('gross_land_sf').value.replace(/,/g, "");
     document.getElementById('gross_land_acre').value = formatNumber(glasf/43560);       
 }

https://jsfiddle.net/vva3x3wu/4/

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?我做了一些修复:

  

https://jsfiddle.net/vva3x3wu/11/

在您在评论中添加的链接中,您从第一个输入中删除了类.cal,因此在您从上一个输入中进行选项卡之前,计算不会显示。