我正在尝试为项目选择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语句,结果略有不同,但仍未正确触发事件
答案 0 :(得分:1)
您使用一个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;
}
}
}
答案 1 :(得分:1)
改用开关:
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;
}
如果不需要,您可以删除默认案例
答案 2 :(得分:1)
请尝试以下内容
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;
}
}
}
}
答案 3 :(得分:1)
我觉得问题是PUT_LPN.focus()
和PUT_LPN == ""
。我假设它和输入字段,为了比较它的值,你需要使用PUT_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;
}