【问题标题】:Convert dot to comma in input type=number在输入类型=数字中将点转换为逗号
【发布时间】:2017-02-13 12:03:52
【问题描述】:

我正在尝试使用 JS 或 JQuery 将type="number" 的输入字段中的点转换为逗号的解决方案。

问题有两个方面:

1) 无论点在输入字段的什么位置,都需要替换。例如,值可以是:

0.50

.45

12.45

12.

2) 我不能使用 keyup 作为触发器。该字段由一个外部连接的刻度填充,它一次性发送数字,包括点。

我希望有人可以帮助解决这个问题,这真的让我很头疼。

** 更新 ** 我设法让这段代码工作,但前提是输入是 TEXT。如果我使用 NUMBER,它只会清除输入内容(我需要将其设为 NUMBER 才能使用该数字执行其他页面计算)。

document.getElementById('purchaseQuantity').addEventListener('input', function() {
  document.getElementById('purchaseQuantity').value = this.value.replace('.', ',')
});

谢谢,

【问题讨论】:

  • 在设置为输入之前获取值并在那里更改
  • 你能用onchange事件吗?
  • Weedoze,我该怎么做?它直接插入到输入中,方式与 Ctrl+V 相同。 Gulfaran,onchange 仅在用户离开输入字段时触发,不是吗?

标签: javascript jquery


【解决方案1】:

使用带有名称的隐藏字段并更新处理程序中的值。

document.getElementById('number').addEventListener('input', function() {
  document.getElementById('hidden').value = this.value.replace('.', ',')
})
<input type="number" id="number" />
<input type="hidden" name="number" id="hidden" />

【讨论】:

  • 嗨,这对我不起作用?即使在 Stackoverflow 上,我也单击“运行代码 sn-p”,但是当我输入带点的数字时,没有任何变化..
  • @AndreasBB : 值将在隐藏字段中更新
【解决方案2】:

var numComma = (value.toString()).replace(".", ",")

将数字转换为字符串,然后使用.replace(".",",")

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2018-11-13
    • 2020-11-11
    • 1970-01-01
    • 2014-02-21
    • 2015-11-21
    相关资源
    最近更新 更多