gpt4 book ai didi

JavaScript 函数未按预期工作

转载 作者:行者123 更新时间:2023-12-02 14:10:41 25 4
gpt4 key购买 nike

我有一个预期无法正常工作的功能。

问题是,我已经设置了

if (Trim(ObjPriXMLHTTP.responseText) != 0) 那么它应该进入内部并运行另一个函数,当我的 if (Trim(ObjPriXMLHTTP.responseText) 时,该函数当前不会运行!= 0) == 1

调试器只是将我从父函数中抛出。 我希望它在值不是 0

时运行

下面是我的js函数

function getCounterForCheck() {
StrPriFnName = "getCounterForCheckInward(" + document.getElementById('TxtInwardNo').value + ")";
var ObjPriXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
ObjPriXMLHTTP.open("GET", "FrmInwardXMLHTTP.aspx?para=" + StrPriFnName, false);
ObjPriXMLHTTP.send("");

if (Trim(ObjPriXMLHTTP.responseText) != 0) {

function getOtherDBInward() {
StrPriFnName = "FunGetOTHERDBInward(" + document.getElementById('TxtInwardNo').value + ")";
var ObjPriXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
ObjPriXMLHTTP.open("GET", "FrmInwardXMLHTTP.aspx?para=" + StrPriFnName, false);
ObjPriXMLHTTP.send("");

if (Trim(ObjPriXMLHTTP.responseText) != "") {
var StrPriData = ObjPriXMLHTTP.responseText.split('~');
document.getElementById('HidRefMkey').value = StrPriData[0];
document.getElementById('TxtDeliveredBy').value = StrPriData[1];
document.getElementById('cmbRecdDept').value = StrPriData[2];
FunEmpFillDept();
document.getElementById('cmbRecdEmp').value = StrPriData[3];
document.getElementById('HidCurrentEmp').value = StrPriData[3];
document.getElementById('Txt_RefBillNo').value = StrPriData[6];
igdrp_getComboById("DtmInfRef_DocDate").setValue(Trim(StrPriData[7]));
igedit_getById("TxtWN_Billamt").setValue(StrPriData[8]);
document.getElementById('TxtRemarks').value = StrPriData[9];
document.getElementById('TxtPartyName').value = StrPriData[10];
}

else {
alert("ERROR: Document does not exist");
//alert("ERROR: Document does not exist and status also");
document.getElementById('TxtInwardNo').focus();
return false;
}
}

}
else {
//alert('invoice not found');
}
}

最佳答案

该代码存在一些问题。

  1. 直到 ES2015,在流程控制 block (如 if 的主体)内声明函数是无效的,并且它仍然是一个Really坏主意™。但这就是您的代码正在做的事情。

  2. 您已声明该函数,但尚未调用它。因此,直接退出正是调试器应该做的事情; getCounterForCheck 中没有什么可做的。

  3. 在评论中,您说过 Trim(ObjPriXMLHTTP.responseText) 将返回 "1""0" (例如,字符串)。但您将其与 0(数字)进行比较。由于您使用的是松散比较 (!=),JavaScript 将为您强制转换该值,在这种特殊情况下,它将按照您可能期望的方式执行此操作。我提出它只是因为 Trim 显式转换值并返回 10 (例如,作为数字)可能有意义。

if block 外部声明该函数,如果要调用它就调用它。像这样的东西:

function getCounterForCheck() {
StrPriFnName = "getCounterForCheckInward(" + document.getElementById('TxtInwardNo').value + ")";
var ObjPriXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
ObjPriXMLHTTP.open("GET", "FrmInwardXMLHTTP.aspx?para=" + StrPriFnName, false);
ObjPriXMLHTTP.send("");

if (Trim(ObjPriXMLHTTP.responseText) != 0) {
getOtherDBInward();
}
else {
//alert('invoice not found');
}

function getOtherDBInward() {
StrPriFnName = "FunGetOTHERDBInward(" + document.getElementById('TxtInwardNo').value + ")";
var ObjPriXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")
ObjPriXMLHTTP.open("GET", "FrmInwardXMLHTTP.aspx?para=" + StrPriFnName, false);
ObjPriXMLHTTP.send("");

if (Trim(ObjPriXMLHTTP.responseText) != "") {
var StrPriData = ObjPriXMLHTTP.responseText.split('~');
document.getElementById('HidRefMkey').value = StrPriData[0];
document.getElementById('TxtDeliveredBy').value = StrPriData[1];
document.getElementById('cmbRecdDept').value = StrPriData[2];
FunEmpFillDept();
document.getElementById('cmbRecdEmp').value = StrPriData[3];
document.getElementById('HidCurrentEmp').value = StrPriData[3];
document.getElementById('Txt_RefBillNo').value = StrPriData[6];
igdrp_getComboById("DtmInfRef_DocDate").setValue(Trim(StrPriData[7]));
igedit_getById("TxtWN_Billamt").setValue(StrPriData[8]);
document.getElementById('TxtRemarks').value = StrPriData[9];
document.getElementById('TxtPartyName').value = StrPriData[10];
}

else {
alert("ERROR: Document does not exist");
//alert("ERROR: Document does not exist and status also");
document.getElementById('TxtInwardNo').focus();
return false;
}
}
}

我没有仔细研究该函数,但如果它不必嵌套在 getCounterForCheck 中,您可以将其移出。

关于JavaScript 函数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39610231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com