更改为功能遮罩

时间:2019-03-29 16:23:30

标签: javascript jquery

我在下面有此代码,它可以按预期工作,但是我需要传递每个人的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逐个创建

1 个答案:

答案 0 :(得分:2)

在这里,您可以使用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">