I’m using a Javascript function to update a class whenever a value is changed, using “onchange” on an “Input” statement and I can’t for the life of me figure out why it skips my “if/elif” statements. I’ve been using “console.log” to verify the values/types immediately before the if statements and it just keeps shooting straight to the “else”.
The relevant code for the function is below. Where segmentTank = 2, loopTank = 2, segmentOrder = 3, and loopOrder = 2 I would have expected the first “if” statement to execute and give me an “If 1” in the console, but the console indicates it jumps straight to the “else”.
I’m wondering what silly mistake I’m making that I keep missing. Am I using “break” incorrectly?
function update_manualClass(segmentId){
console.log('Updating manual class for segment:', segmentId);
var segmentOrderInput = document.querySelector("input[name='Order_name_" + segmentId + "']");
var segmentTankInput = document.querySelector("input[name='Tank_Number_name_" + segmentId + "']");
if (!segmentOrderInput || !segmentTankInput) {
console.error('Failed to find segment inputs for segment:', segmentId);
console.log('Segment Order input:', segmentOrderInput);
console.log('Segment Tank input:', segmentTankInput);
return;
}
var segmentOrder = parseInt(segmentOrderInput.value);
var segmentTank = parseInt(segmentTankInput.value);
console.log('Segment order:', segmentOrder);
console.log('Segment tank:', segmentTank);
var table = document.querySelector("#table2");
console.log("Table:", table);
var previousSegmentOrder = [];
for (var i = 0; i < table.rows.length - 1; i++) {
//var row=table.rows[i+1];
var loopOrderInput=table.rows[i+1].cells[0].querySelector("input[name^='Order_name_']");
var loopTankInput=table.rows[i+1].cells[1].querySelector("input[name^='Tank_Number_name_']");
console.log('Loop Order input:', loopOrderInput);
console.log('Loop Tank input:', loopTankInput);
var loopOrder = parseInt(loopOrderInput.value);
var loopTank = parseInt(loopTankInput.value);
console.log('Loop order:', loopOrder, typeof loopOrder);
console.log('Loop tank:', loopTank, typeof loopTank);
console.log('segmentTank:', segmentTank, typeof segmentTank);
console.log('segmentOrder:', segmentOrder, typeof segmentOrder);
if (segmentTank == loopTank && loopOrder < segmentOrder) {
previousSegmentOrder = [];
previousSegmentOrder.push(loopOrder);
console.log('If 1:', previousSegmentOrder);
}
else if (segmentTank == loopTank && loopOrder == previousSegmentOrder[0] && previousSegmentOrder.length == 0){
var fillPressureInput = document.getElementsByName("Fill_Pressure_name_" + segmentId)[0];
var tankSizeInput = document.getElementsByName("Tank_Size_name_" + segmentId)[0];
console.log('If 2', previousSegmentOrder);
manualClass = "Manual"
fillPressureInput.classList = manualClass;
tankSizeInput.classList = manualClass;
break;
}
else if (segmentTank == loopTank && loopOrder == previousSegmentOrder[0]){
var fillPressureInput = document.getElementsByName("Fill_Pressure_name_" + segmentId)[0];
var tankSizeInput = document.getElementsByName("Tank_Size_name_" + segmentId)[0];
console.log('If 3', previousSegmentOrder);
manualClass = ""
fillPressureInput.classList = manualClass;
tankSizeInput.classList = manualClass;
break;
}
else {
console.log('Did not work', previousSegmentOrder);
}
}
}