javascript中的嵌套if-else函数

javascript中的嵌套if-else函数,javascript,Javascript,我正在尝试将条形码验证功能添加到物品挑选webapp页面,我的javascript如下所示: function barcodeSubmit () { if (barcode1 != barcode || barcode2 != barcode) { if (PUT_LPN == "") { barcodeF.focus(); return false; } } else { if (barcode1 != barcode || barcode2 != barcod

我正在尝试将条形码验证功能添加到物品挑选webapp页面,我的javascript如下所示:

 function barcodeSubmit () {

 if (barcode1 != barcode || barcode2 != barcode) {
   if (PUT_LPN == "") {
  barcodeF.focus();
  return false;
  }  
 } else {
 if (barcode1 != barcode || barcode2 != barcode) {
 if (PUT_LPN != "") {
     barcodeF.focus();
     return false;
     }  
   }
 }
} else {
 if (barcode1 == barcode || barcode2 == barcode) {
 if (PUT_LPN == "") {
    PUT_LPN.focus();
    return false;
  }  
 }
}
 else {
  if (barcode1 == barcode || barcode2 == barcode) {
  if (PUT_LPN != "") {
    return true;
   }  
  }
 }
}

当我提交此表单时,它不会提交,我无法让它执行连接到onclick输入字段的功能。当我简化它时,它确实会调用,它会执行我想要的。我也在没有else语句的情况下尝试了它,结果略有不同,但仍然没有正确触发事件

您的代码有很多问题您正在使用一个
if
和4个
else
,一些未使用的条件也尝试以下操作:

function barcodeSubmit() {

    if (barcode1 != barcode || barcode2 != barcode) {
        if (PUT_LPN == "") {
            barcodeF.focus();
            return false;
        } else if (PUT_LPN != "") {
            barcodeF.focus();
            return false;
        }
    }
    else if (barcode1 == barcode || barcode2 == barcode) {
        if (PUT_LPN == "") {
            PUT_LPN.focus();
            return false;
        } else if (PUT_LPN != "") {
            return true;
        }
    }
}

您的代码有很多问题您正在使用一个
if
和4个
else
以及一些未使用的条件,请尝试以下操作:

function barcodeSubmit() {

    if (barcode1 != barcode || barcode2 != barcode) {
        if (PUT_LPN == "") {
            barcodeF.focus();
            return false;
        } else if (PUT_LPN != "") {
            barcodeF.focus();
            return false;
        }
    }
    else if (barcode1 == barcode || barcode2 == barcode) {
        if (PUT_LPN == "") {
            PUT_LPN.focus();
            return false;
        } else if (PUT_LPN != "") {
            return true;
        }
    }
}
请改用开关:

switch(true) {
    case ((barcode1 != barcode || barcode2 != barcode) && PUT_LPN == ""):
        barcodeF.focus();
        return false;
    case ((barcode1 != barcode || barcode2 != barcode) && PUT_LPN != ""):
        barcodeF.focus();
        return false;
    case ((barcode1 == barcode || barcode2 == barcode) && PUT_LPN == ""):
        PUT_LPN.focus();
        return false;
    case ((barcode1 == barcode || barcode2 == barcode) && PUT_LPN != ""):
        return true;
    default:
        return true;
}
如果不需要,您可以删除默认情况

改用开关:

switch(true) {
    case ((barcode1 != barcode || barcode2 != barcode) && PUT_LPN == ""):
        barcodeF.focus();
        return false;
    case ((barcode1 != barcode || barcode2 != barcode) && PUT_LPN != ""):
        barcodeF.focus();
        return false;
    case ((barcode1 == barcode || barcode2 == barcode) && PUT_LPN == ""):
        PUT_LPN.focus();
        return false;
    case ((barcode1 == barcode || barcode2 == barcode) && PUT_LPN != ""):
        return true;
    default:
        return true;
}

如果不需要,您可以删除默认案例

请尝试以下操作

功能条码提交(){
if(条形码1!=条形码| |条形码2!=条形码){
如果(PUT_LPN==“”){
条形码f.focus();
返回false;
}  
}否则如果(条形码1!=条形码| |条形码2!=条形码){
如果(输入LPN!=“”){
条形码f.focus();
返回false;
}   
}否则如果(条形码1==条形码| |条形码2==条形码){
如果(PUT_LPN==“”){
放置LPN.focus();
返回false;
}  
}否则{
如果(条形码1==条形码| |条形码2==条形码){
如果(输入LPN!=“”){
返回true;
}  
}
}

}
请尝试以下方法

功能条码提交(){
if(条形码1!=条形码| |条形码2!=条形码){
如果(PUT_LPN==“”){
条形码f.focus();
返回false;
}  
}否则如果(条形码1!=条形码| |条形码2!=条形码){
如果(输入LPN!=“”){
条形码f.focus();
返回false;
}   
}否则如果(条形码1==条形码| |条形码2==条形码){
如果(PUT_LPN==“”){
放置LPN.focus();
返回false;
}  
}否则{
如果(条形码1==条形码| |条形码2==条形码){
如果(输入LPN!=“”){
返回true;
}  
}
}

}
在我看来,问题似乎是
放置LPN.focus()
放置LPN==”
。我假设它和输入字段,为了比较它的值,需要使用
PUT\u LPN.value
。同样,
if…else
的语法也无效

if(condition) {
  //
} else if(condition) {
  //
} else {
  //
}
此外,还有许多重复的情况,你需要照顾

function barcodeSubmit() {
  if (barcode1 === barcode || barcode2 === barcode) {
    var flag = ('' === PUT_LPN.value);
    if (flag)
      PUT_LPN.focus();
    return !flag;
  }
  barcodeF.focus();
  return false;
}

在我看来,问题似乎是
PUT\u LPN.focus()
PUT\u LPN==”
。我假设它和输入字段,为了比较它的值,需要使用
PUT\u LPN.value
。同样,
if…else
的语法也无效

if(condition) {
  //
} else if(condition) {
  //
} else {
  //
}
此外,还有许多重复的情况,你需要照顾

function barcodeSubmit() {
  if (barcode1 === barcode || barcode2 === barcode) {
    var flag = ('' === PUT_LPN.value);
    if (flag)
      PUT_LPN.focus();
    return !flag;
  }
  barcodeF.focus();
  return false;
}

“当我提交此表格I时”,此处
指的是您有一张
如果
和4
其他
哪张表格是错误的。使用
else if
if(){}else if(){}else if(){}else{}“当我提交此表格I时”,这里
this
指的是哪一个表格有一个
if
和4
else
是错误的。使用
else if
if(){}else if(){}else if(){}else if(){}else{}