使用 jquery 编号格式化程序格式化数字并重新格式化它们



我用jquery numberformatter格式化输入字段的数字,这有效,但我必须将它们格式化回来才能对数字进行一些计算,但这不起作用。如何将格式化的数字转换回来,以便我可以使用计算函数?

以下是数字格式的 JS:

 $("[id$='abzug']").keyup(function(){
    $(this).parseNumber({format:"#,###", locale:"ch"});
    $(this).formatNumber({format:"#,###", locale:"ch"});
    val();
 });

这里是 HTML:

  <input class="form-control" id="kunst_abzug" type="text">
  <input class="form-control" id="theater_abzug" type="text">

这里是计算总数的函数:

function id(id){return document.getElementById(id);}
function val(){
val_totalEingespart = parseInt(id("totalEingespart").value) || 0;
val1 = parseInt(id("kunst_abzug").value) || 0;
val2 = parseInt(id("theater_abzug").value) || 0;
var total_abgezogen = val_totalEingespart - val1 - val2;
var total_abgezogenCHF = total_abgezogen.toLocaleString('de-CH');  
id("totalSum2").innerHTML = total_abgezogenCHF + ' CHF';
}

我还创建了一个js小提琴:http://jsfiddle.net/Lffpg4xp/2/

从每个输入元素中删除onkeyup="val(),并将其添加到 document.ready 中的函数键中。

$( document ).ready(function() {
$("[id$='abzug']").keyup(function(){
        $(this).parseNumber({format:"#,###", locale:"ch"});
        $(this).formatNumber({format:"#,###", locale:"ch"});
    val();
     });
 });
function getElementValue(id){
     var num = $('#' + id).val();
     return $.parseNumber(num, {format:"####", locale:"ch"});
}
function val(){
    val_totalEingespart = parseInt(getElementValue("totalEingespart")) ? parseInt(getElementValue("totalEingespart")) :  0;
    val1 = parseInt(getElementValue("kunst_abzug")) ? parseInt(getElementValue("kunst_abzug")) : 0;
    val2 = parseInt(getElementValue("theater_abzug")) ?  parseInt(getElementValue("theater_abzug")) : 0;
    var total_abgezogen = val_totalEingespart - val1 - val2;
    $("#totalSum2")[0].innerHTML = total_abgezogen.toLocaleString('de-CH') + ' CHF';
}

更新的小提琴

最新更新