Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery numberformatter格式化数字并将其重新格式化_Javascript_Jquery - Fatal编程技术网

Javascript 使用jquery numberformatter格式化数字并将其重新格式化

Javascript 使用jquery numberformatter格式化数字并将其重新格式化,javascript,jquery,Javascript,Jquery,我用jquery numberformatter格式化输入字段的数字,这是可行的,但我必须将它们重新格式化,以便对数字进行一些计算,但这不起作用。如何将格式化的数字转换回,以便使用计算功能 以下是编号格式的JS: $("[id$='abzug']").keyup(function(){ $(this).parseNumber({format:"#,###", locale:"ch"}); $(this).formatNumber({format:"#,###", locale:

我用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">
我还创建了一个js fiddle:

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

$( 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';
}

更新了

我更新了帖子,但你的答案并不能解决我的问题。你想在这里实现什么?我用第一个文本框中的值减去第二个和第三个文本框的值。我从你的代码中猜到了。它一直减去直到你有4位数字,如果你有4位,它就不再起作用了。我如何使用numberformatter函数div上的ion?为了替换此代码:$(“#totalSum2”)[0]。innerHTML=total_abgezogen.toLocaleString('de-CH')+'CHF';因为此代码不能在所有浏览器上可靠工作。您使用的浏览器是什么?
innerHTML
,所有常用浏览器都支持。
$( 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';
}