当输入字段为空时,我的表单显示NaN。你能帮我处理这个问题吗?下面是我的代码:
function dailyRate () {
var monthlyRate = parseInt(document.getElementById("txt1").value);
var months = 12;
var workingDays = parseInt(document.getElementById("txt2").value);
var totalDailyRate = (monthlyRate * months) / workingDays;
document.getElementById("totalRate").innerHTML = Math.round(totalDailyRate);
}
$(document).ready(function() {
$("#mainForm").submit(function(e){
e.preventDefault();
});
$("#txt2, #txt1").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: Ctrl+C
(e.keyCode == 67 && e.ctrlKey === true) ||
// Allow: Ctrl+X
(e.keyCode == 88 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form name="mainForm" id="mainForm" action="" onsubmit="return dailyRate()" method="post">
<input type="text" id="txt1" name="text1" placeholder="monthlyrate">
<input type="text" id="txt2" name="text2" placeholder="workingDays">
<p id="alerttext"></p>
<button>Submit</button>
<p id="totalRate"></p>
</form>
发布于 2016-09-26 08:22:42
如果内容不是数字,则函数parseInt()返回NaN,在本例中,如果控件为空,则返回getElementById将返回空字符串。因此,您可能应该在使用它之前执行一些验证,例如:
var monthlyRate = parseInt(document.getElementById("txt1").value);
var months = 12;
var workingDays = parseInt(document.getElementById("txt2").value);
if (isNaN(monthlyRate) || isNaN(workingDays)) {
document.getElementById("totalRate").innerHTML = 'No value';
return;
}在上面的示例中,如果有任何值无效,totalRate将显示“No value”。
https://stackoverflow.com/questions/39693064
复制相似问题