document.querySelectorAll('#salary-min, #salary-max').addEventListener('input', event =>
event.target.value = (parseInt(event.target.value.replace(/[^\d]+/gi, '')) || 0).toLocaleString('en-US')
);
<div id="salary-range">
<div>
<div class="input">
<label for="salary">Minimum salary</label>
<input class='inp_cont' id="salary-min" pattern="^[\d,]+$" name="salary" placeholder="Enter your salary" required="" type="text">
</div>
</div>
<div>
<div class="input">
<label for="salary">Maximum salary</label>
<input class='inp_cont' id="salary-max" pattern="^[\d,]+$" name="salary-max" placeholder="Enter your salary" required="" type="text">
</div>
</div>
</div>
我试着让salary-min和salary-max都使用js代码进行逗号分隔。我也尝试过ElementsByClass,但也没有用。如何在我的js中使用两个ID?
答案 0 :(得分:1)
您无法调用为元素集合上的单个元素设计的方法。
使用循环。
const handler = event => event.target.value = (parseInt(event.target.value.replace(/[^\d]+/gi, '')) || 0).toLocaleString('en-US');
for (const el of document.querySelectorAll('#salary-min, #salary-max')) {
el.addEventListener('input', handler);
}
作为旁注,您的正则表达式可以从/[^\d]+/gi
缩短为/\D+/gi