Javascript计算返回NaN,仅插入前2个和
这是htmlJavascript计算返回NaN,仅插入前2个和,javascript,html,Javascript,Html,这是html function kanded_arvutus() { var deebet1 = document.getElementById("deebet1").value; var kreedit1 = document.getElementById("kreedit1").value; var deebet2 = document.getElementById("deebet2").value; var kreedit2 = document.getElement
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);
}
如果我只插入kreedit1和deebet1值,那么jquery返回NAN,但是如果我也插入deebet2和kreedit2,那么工作正常
也许有人会看到,这里怎么了
提前感谢您,aimar。您正在从输入值中读取一个空字符串,并试图将其解析为一个数字。这就是为什么它是南。您需要检查它是否为空(如果为空,则设置默认值,可能为0)
等等 在添加之前,请检查变量是否不为空或未定义如下:
if(deebet1 != "") {
}
正如John所建议的,您可以使用下面的方法,检查变量是否有任何实际值
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);
}
你能给我们看一下呈现的html吗?那是因为
parseFloat(“”
返回NaN
,而NaN+anything
仍然是NaN
。仅供参考,这与jQuery无关。这是纯JavaScript。当输入值中只有0时,这可以吗?或者最好按你的方式做?我认为这是你的决定,但在加法之前检查它是否有值总是好的。前提是您将使用reg exp或某种验证只接受十进制或数字值。
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);
}
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);
}