Javascript计算返回NaN,当只插入前2个和
Javascript calculation returns NaN, when only first 2 sum inserted
function kanded_arvutus()
{
var deebet1 = document.getElementById("deebet1").value;
var kreedit1 = document.getElementById("kreedit1").value;
var deebet2 = document.getElementById("deebet2").value;
var kreedit2 = document.getElementById("kreedit2").value;
var kokku_deebet = parseFloat(deebet1)+parseFloat(deebet2);
document.getElementById("kokku_deebet").value = kokku_deebet.toFixed(2);
var kokku_kreedit = parseFloat(kreedit1)+parseFloat(kreedit2);
document.getElementById("kokku_kreedit").value = kokku_kreedit.toFixed(2);
}
这是html
<input onClick="kanded_arvutus();" onChange="kanded_arvutus();" type="text" class="form-control" name="deebet'.$i.'" id="deebet'.$i.'" placeholder="0" value="">
<input value="" onClick="kanded_arvutus();" onChange="kanded_arvutus();" type="text" class="form-control" name="kreedit'.$i.'" id="kreedit'.$i.'" placeholder="0">
<input type="text" class="form-control field" name="kokku_deebet" value="" id="kokku_deebet" placeholder="0">
<input type="text" class="form-control field" name="kokku_kreedit" value="" placeholder="0" id="kokku_kreedit">
,如果我只插入kreedit1和deebet1值,然后jquery返回NAN,但如果我插入deebet2和kreedit2也,然后工作。
有人可能会看到,这是怎么回事?
谢谢你,亲爱的。
请检查变量是否为空或未定义如下,在添加之前,
if (typeof(deebet1) != 'undefined' && deebet1 != null && typeof(deebet2) != 'undefined' && deebet2 != null)
{
var kokku_deebet = parseFloat(deebet1)+parseFloat(deebet2);
document.getElementById("kokku_deebet").value = kokku_deebet.toFixed(2);
}
if (typeof(kreedit1) != 'undefined' && kreedit1 != null && typeof(kreedit2) != 'undefined' && deebet2 != null)
{
var kokku_deebet = parseFloat(kreedit1)+parseFloat(kreedit2);
document.getElementById("kokku_kreedit").value = kokku_deebet.toFixed(2);
}
正如John建议的那样,你可以使用下面的命令,它将检查变量是否有任何实值。
if (deebet1 && deebet2)
{
var kokku_deebet = parseFloat(deebet1)+parseFloat(deebet2);
document.getElementById("kokku_deebet").value = kokku_deebet.toFixed(2);
}
if (kreedit1 && kreedit2)
{
var kokku_deebet = parseFloat(kreedit1)+parseFloat(kreedit2);
document.getElementById("kokku_kreedit").value = kokku_deebet.toFixed(2);
}
您正在从输入值中读取一个空字符串,并试图将其解析为数字。这就是为什么它是南。您需要检查它是否为空(如果为空则设置默认值,可能为0)。
if(deebet1 != "") {
}
等等…
相关文章:
- 如何在html表中插入多个相同的图像
- 如何jQuery-Add按钮最多插入10个新输入
- 如何在MySQL中插入多个记录/行
- 插入多个文本分隔符-javascript
- 在多个元素上运行的函数插入多个图像
- 在post请求中使用mongodb插入多个文档
- 使用php在mysql中插入多个记录
- 如何一次插入两个表?准备好的发言
- 使用Nodejs在Mysql中插入多个值,并用响应通知用户
- 如何在 SQL 表中插入两个变量
- 在 JavaScript 字符串 (regex) 中插入多个换行符 (CodeMirror)
- .before插入多个元素
- 插入四个空格而不是制表符
- 将 JavaScript 插入多个现有页面的最佳选择
- 余烬组件插入两个表行
- Kendo autocomplete,如何在dataTextField中插入多个值
- 在另一个字符串中插入多个(但有限的)匹配项的字符串
- 如何在 AngularJS 的表格单元格中插入多个值
- 在一个数据库中插入多个文本框的数据
- 在单行中插入多个下拉值,而不是在多行中插入