【发布时间】:2019-11-19 18:50:22
【问题描述】:
我输入了格式为 20,000.00 的数字字段
如果用户没有在第一个字段中键入,如何删除 Nan?
document.getElementById("BasicSalary_x").onblur =function (){
this.value = parseFloat(this.value.replace(/,/g, ""))
.toFixed(2)
.toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function isNumberKey(evt) {
var charCode = ((evt.which) ? evt.which : event.keyCode);
return !(charCode > 31 && (charCode != 46 && charCode != 44 && (charCode < 48 || charCode > 57)));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="tel" onkeypress="return isNumberKey(event)" id="BasicSalary_x" placeholder="Basic Salary (RM)" >
<input type="tel" value="0.00" onkeypress="return isNumberKey(event)" id="deduction" placeholder="Deduction (RM)" >
【问题讨论】:
-
抱歉刚刚删除了 display_BasicSalary_x ,如果不填写第一个字段并使用 tab 到下一个字段会出现 Nan
-
在处理之前检查该字段是否为空:
if (document.getElementById('BasicSalary_x').value != '') { ... } -
@GrafiCode 仍然会给出
NaN如果您粘贴非数字 -
@freedomn-m 我不知道有人可以在
input type="tel"中粘贴非数字值,感谢您的澄清 -
@GrafiCode 不是我经常使用的东西 - 只是尝试 OPs 代码。 OPs 代码阻止了非数字输入(但不是粘贴),而不是
type=tel,事实证明,它不会阻止任何东西。 developer.mozilla.org/en-US/docs/Web/HTML/Element/input/tel
标签: javascript jquery numbers nan