在借方通知单中,如果我提醒销售发票金额id
,则表示: -
未定义
为什么会这样?
为什么它不能在time_stamp
中保存价值?
任何帮助?
我的代码
temp_c
单个html行,输入字段为tr和td 与html共享代码 https://codeshare.io/21q4zj
答案 0 :(得分:1)
<强>更新强>
澄清谁在考虑范围问题不是
JavaScript会variable hoisting,并且所有变量定义都会在您的函数中位于顶部。
当它为它分配内存时,它将变量初始化为undefined。
如果变量未定义,则表示变量未初始化。
Javascript中的未定义(从未定义)变量会为您提供引用错误
https://jsfiddle.net/b5cbwufx/3/
<强>解决方案强>
问题在于您要分配值if (j == 2) {
只有满足条件if(j == 3){
时才意味着当满足条件0
时,上述条件将无意中失败,因此您的si永远不会初始化为if ( j == 2) {
var si = $(this).find("input").val();
// if sales invoice not found/undefined.
if (typeof si === "undefined") {
si = 0; // if sales invoice is not defined.
}
alert("sales" + si );
}
此代码永远不会执行
// Debit Note.
if (j == 3) {
var dn = $(this).find("input").val();
if (typeof dn === "undefined") {
dn = 0; // if Debit Note is not defined.
}
alert("sales" + si); // not defined as j==3 and not 2
}
所以,你的代码未定义
var si=0,dn=0; //declare here
// // Sales Invoice.
if (j == 2) {
si = $(this).find("input").val();
// if sales invoice not found/undefined.
if (typeof si === "undefined") {
si = 0; // if sales invoice is not defined.
}
alert("sales" + si);
} // scope ends
// Debit Note.
if (j == 3) {
dn = $(this).find("input").val(); // Debit note input value.
if (typeof dn === "undefined") {
dn = 0; // if Debit Note is not defined.
}
alert("sales" + si);
}
尝试在顶部的if块之外声明它们
{{1}}