首页 > 解决方案 > 更改为功能掩码

问题描述

我在下面有这段代码,它按预期工作,但我需要传递每个人的 id 才能工作。我怎样才能把它变成一个函数来使用onKeyPress事件:

document.getElementById('inp').addEventListener('input', e => {
const val = e.target.value.replace(/\D/g, '').replace(/^0*/, '').padStart(3, '0')
e.target.value = val.slice(0, -2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.') + ',' + val.slice(-2)
})

我想转而用作:function Mask(){ // code }

<input asp-for="Frete" name="Frete" onKeyPress="return(Mask(this,'.',',',event))" class="form-control" />

为了能够使用function,所以我需要一个一个地创建id

标签: javascriptjquery

解决方案


在这里,您可以使用event如下对象:

document.getElementById('inp1').addEventListener('input', (e) => { Mask(e, 'inp1'); });
document.getElementById('inp2').addEventListener('input', (e) => { Mask(e, 'inp2'); });
document.getElementById('inp3').addEventListener('input', (e) => { Mask(e, 'inp3'); });

function Mask(e, id) {
  const target = document.getElementById(id);

  const val = target.value.replace(/\D/g, '').replace(/^0*/, '').padStart(3, '0');
  target.value = val.slice(0, -2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.') + ',' + val.slice(-2);
}
<input id="inp1">
<input id="inp2">
<input id="inp3">


推荐阅读