首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >空值将导致NaN结果

空值将导致NaN结果
EN

Stack Overflow用户
提问于 2016-09-26 08:10:12
回答 2查看 1.8K关注 0票数 1

当输入字段为空时,我的表单显示NaN。你能帮我处理这个问题吗?下面是我的代码:

代码语言:javascript
复制
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();
        }
    });
});
代码语言:javascript
复制
<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>

EN

Stack Overflow用户

发布于 2016-09-26 08:22:42

如果内容不是数字,则函数parseInt()返回NaN,在本例中,如果控件为空,则返回getElementById将返回空字符串。因此,您可能应该在使用它之前执行一些验证,例如:

代码语言:javascript
复制
 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”。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39693064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档