<div style="display:grid;grid-template-columns: auto auto auto auto;row-gap:1rem;border:1px solid black;border-radius:1rem;padding:.5rem;">
<label for="output-voltage">Output Voltage:</label>
<input type="text" id="output-voltage" name="output-voltage" style="width:5rem;text-align:center;padding:0;">
<label for="component-voltage">Component Voltage:</label>
<input type="text" id="component-voltage" name="component-voltage" style="width:5rem;text-align:center;padding:0;">
<label for="min-current">Ideal Current:</label>
<input type="text" id="min-current" name="min-current" style="width:5rem;text-align:center;padding:0;">
<label for="max-current">Maximum Current:</label>
<input type="text" id="max-current" name="max-current" style="width:5rem;text-align:center;padding:0;">
<label for="min-res">Minimum Resistance:</label>
<input type="text" id="min-res" name="min-res" style="width:5rem;text-align:center;padding:0;">
<label for="max-res">Maximum Resistance:</label>
<input type="text" id="max-res" name="max-res" style="width:5rem;text-align:center;padding:0;">
</div>const outputVoltage = document.getElementById("output-voltage");
const componentVoltage = document.getElementById("component-voltage");
const minCurrent = document.getElementById("min-current");
const maxCurrent = document.getElementById("max-current");
const minRes = document.getElementById("min-res");
const maxRes = document.getElementById("max-res");
outputVoltage.addEventListener("input", findRes);
componentVoltage.addEventListener("input", findRes);
minCurrent.addEventListener("input", findRes);
maxCurrent.addEventListener("input", findRes);
function checkVal(field) {
if (field.value.trim() === "") {
return false;
} else {
return true;
}
}
function findRes(event) {
if (checkVal(outputVoltage) && checkVal(componentVoltage)) {
const toRes = parseFloat(outputVoltage.value, 10) - parseFloat(componentVoltage.value, 10);
if (checkVal(minCurrent)) {
let max = Math.round(toRes / parseFloat(minCurrent.value, 10));
if (Number.isFinite(max)) {
maxRes.value = max;
}
} else {
maxRes.value = "";
}
if (checkVal(maxCurrent)) {
let min = Math.round(toRes / parseFloat(maxCurrent.value, 10));
if (Number.isFinite(min)) {
minRes.value = min;
}
} else {
minRes.value = "";
}
} else {
minRes.value = "";
maxRes.value = "";
}
}