Find resistance

<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 = "";
  }
}

Share with