dongqu5650 2019-02-22 06:57
浏览 103
已采纳

计算使用千位分隔格式的密钥向上功能

i want to make a calculation when user key in, the result will show in other field. with format number with thousand separator like 2,500.00

so if i sum 2,500.00 + 2,500.00 the result must be 5,000.00

but my code show 4.00

function isNumberKey(evt) {
  var theEvent = evt || window.event;
  var key = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode(key);
  if (key.length == 0) return;
  var regex = /^[0-9.,\b]+$/;
  if (!regex.test(key)) {
    theEvent.returnValue = false;
    if (theEvent.preventDefault) theEvent.preventDefault();
  }
}

function toFloat(z) {
  var x = document.getElementById(z);
  x.value = parseFloat(x.value).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}

$( ".fn" ).keyup(function() {
 var nmi = $('#nmi').val();
  var a = $('#a').val();

  var total = parseFloat(nmi) + parseFloat(a);
  $("#total").val(parseFloat(total).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input onchange="toFloat('nmi')" type="text" maxlength="10" onkeypress="return isNumberKey(event)" required="required" class="form-control fn" placeholder="RM" name="nmi" id="nmi">

<input onchange="toFloat('a')" type="text" maxlength="10" onkeypress="return isNumberKey(event)" required="required" class="form-control fn" placeholder="RM" name="a" id="a">
<br> total
<input onchange="toFloat('total')" type="text" maxlength="10" onkeypress="return isNumberKey(event)" required="required" class="form-control fn" placeholder="RM" name="total" id="total">

</div>
  • 写回答

3条回答 默认 最新

  • dqyp50298 2019-02-26 01:12
    关注

    Lets try this one,,, thats works for me "Dial Gtg"

    $('input.CurrencyInput').on('blur', function() {
      const value = this.value.replace(/,/g, '');
      this.value = parseFloat(value).toLocaleString('en-US', {
        style: 'decimal',
        maximumFractionDigits: 2,
        minimumFractionDigits: 2
      });
    });
    
    $('input.CurrencyInput2').on('blur', function() {
      const value = this.value.replace(/,/g, '');
      this.value = parseFloat(value).toLocaleString('en-US', {
        style: 'decimal',
        maximumFractionDigits: 2,
        minimumFractionDigits: 2
      });
    });
    
    
    $( ".fn" ).keyup(function() {
     var a = $('#a').val().replace(/,/g,'');
     
      var b = $('#b').val().replace(/,/g,'');
    
      var total = parseFloat(a) + parseFloat(b);
      $("#total_nya").val(parseFloat(total).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'));
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input class="CurrencyInput fn" id="a">
    
    <input class="CurrencyInput2 fn" id="b">
    
    <input class="total_nya" id="total_nya">

    </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件