繁体   English   中英

使用美元符号和逗号格式化货币输入字段

[英]Format currency input field with dollar sign & commas

我在 javascript/jquery 表单中有一个收入输入字段:

  1. 需要美元符号:之前
  2. 随着货币的增加添加逗号

我有一个通过 css 显示的美元符号,但问题是居中并确保字段入口点在它旁边而不重叠。 不确定如何使用逗号。 欢迎任何建议或提示!

HTML:

  <form id="rev-calculator">
  <label for="price">Monthly Revenue</label>
  <div class="fields">
    <input type="number" name="price" id="price" min="0" max="10000000000" required data-type="number"> </input>
    <br>
  </form>

CSS:

  <style>
      .body {
        text-align: left;
      }
      
      .fields {
        margin: 0 10px 0 0;
      }
      
      .fields:before {
        content: "$";
        text-align: center;
        position: relative;
        left:30px;
      }
      
      #price {
        border-radius: 5px;
        margin: 15px;
        padding: 10px;
        color: black;
      }
    </style>

JS:

<script>
  $('#rev-calculator').on('click', 'button', function(e) {
    e.preventDefault();
    var price = $("#price").val();
    console.log(price);
  })
</script>

代码笔: https://codepen.io/kedarPE/pen/JjroYyb

输入字段

好吧,这是一种方法,尽管实际上并不像我开始走这条路时所希望的那么简单。 您可以使用Intl.NumberFormat在其中获取逗号(根据语言环境)。 为了容纳小数,我在开头嗅探它们,然后将它们 append 嗅探到结果。

为了允许使用逗号,我将其设为具有模式属性的文本字段。 另外,我调整了你的 CSS 让它看起来更漂亮一点

 $('#price').keydown(function(e) { setTimeout(() => { let parts = $(this).val().split("."); let v = parts[0].replace(/\D/g, ""), dec = parts[1] let n = new Intl.NumberFormat('en-EN').format(v); n = dec?== undefined. n + ":" + dec; n. $(this);val(n); }) })
 .body { text-align: left; }.fields { margin: 0 10px 0 0; }.fields:before { content: "$"; text-align: center; position: relative; left: 35px; } #price { border-radius: 5px; margin: 15px; padding: 10px 10px 10px 20px; color: black; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="rev-calculator"> <label for="price">Monthly Revenue</label> <div class="fields"> <input type="text" pattern="[0-9.,]+" name="price" id="price" required data-type="number" /> <br> </form>

我很惊讶这个问题的独特答案有很多选票,因为它有一个微小但主要的缺陷:事件不应该是 keydown,它应该是 keyup。 如果您使用 keydown,它不会读取您当前按下的键,而是读取前一个键。 所以,请更新你的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM