簡體   English   中英

提交時不計算 HTML 和 Javascript 表單

[英]HTML and Javascript Form not calculating on submit

我是編碼新手。 我的表單未返回計算值時遇到問題,我不確定我做錯了什么。 當我按下提交時,什么也沒有發生。 我沒有看到任何 linting 錯誤。 chrome 上的開發工具中會彈出一個簡短的紅色,但時間不足以讓我閱讀錯誤。

HTML:

<body>

  <form id="load-calculator">
    <p>
      <label for="performer-mass">Please Enter Performer(s) Weight (lbs)</label>
      <input id="performer-mass" required name="performer-mass" type="number" min="1">
    </p>
    <p>
      <label for="apparatus-mass">Please Enter Apparatus Weight (lbs)</label>
      <input id="apparatus-mass" required name="apparatus-mass" type="number" min="1">
    </p>
    <p>
      <label for="dynamic-factor">Please Choose An Apparatus <br>(Dynamic Adjustment Factor)</label>
      <select id="dynamic-factor" required name="dynamic-factor">
        <option value="1.5">Aerial Yoga (1.5)</option>
        <option value="2">Silks (2 for drops less than 3ft.)</option>
        <option value="3">Static Trapeze (3)</option>
        <option value="3">silks (3 for drops 3-8ft.)</option>
        <option value="5">Rope (5)</option>
        <option value="5">Straps (5)</option>
      </select>
    </p>
    <p>
      <input type="submit" onClick="characteristicLoad" value="Calculate">
    </p>
    <p>
      <label for="result">Estimated Characteristic Load</label>
      <input for="load-calculator" id="result">
    </p>
  </form>

  <script type="module" src="src/loadCalculator.js"></script>

</body>

Javascript:

export function characteristicLoad() {
  const performerMass = document.getElementById('performer-mass').value;
  const apparatusMass = document.getElementById('apparatus-mass').value;
  const totalMass = performerMass + apparatusMass;

  const dynamicFactor = document.getElementById('dynamic-factor').value;

  let result = document.getElementById('result');

  let characteristicLoad = totalMass * dynamicFactor * 6;
  result.value = characteristicLoad;
}

這是 jsfiddle 的鏈接: https ://jsfiddle.net/dylancorvidae/ae289qum/1/

謝謝您的幫助。

將您的輸入類型從submit更改為button以防止實際提交表單,並確保通過在函數名稱后面添加括號來調用您的函數。

修正后的“計算”按鈕如下所示:

<input type="button" onclick="characteristicLoad()" value="Calculate">

注意:如果你真的想要的計算后提交表單,你可以保持輸入類型為submit並綁定到onsubmit事件代替onclick事件。


完整片段:

 function characteristicLoad() { const performerMass = document.getElementById('performer-mass').value; const apparatusMass = document.getElementById('apparatus-mass').value; const totalMass = performerMass + apparatusMass; const dynamicFactor = document.getElementById('dynamic-factor').value; let result = document.getElementById('result'); let characteristicLoad = totalMass * dynamicFactor * 6; result.value = characteristicLoad; }
 <form id="load-calculator"> <p> <label for="performer-mass">Please Enter Performer(s) Weight (lbs)</label> <input id="performer-mass" required name="performer-mass" type="number" min="1"> </p> <p> <label for="apparatus-mass">Please Enter Apparatus Weight (lbs)</label> <input id="apparatus-mass" required name="apparatus-mass" type="number" min="1"> </p> <p> <label for="dynamic-factor">Please Choose An Apparatus <br>(Dynamic Adjustment Factor)</label> <select id="dynamic-factor" required name="dynamic-factor"> <option value="1.5">Aerial Yoga (1.5)</option> <option value="2">Silks (2 for drops less than 3ft.)</option> <option value="3">Static Trapeze (3)</option> <option value="3">silks (3 for drops 3-8ft.)</option> <option value="5">Rope (5)</option> <option value="5">Straps (5)</option> </select> </p> <p> <input type="button" onClick="characteristicLoad()" value="Calculate"> </p> <p> <label for="result">Estimated Characteristic Load</label> <input for="load-calculator" id="result"> </p> </form>

您的代碼在按鈕的onclick事件中出錯。

您必須像這樣在函數名稱后使用()onClick="characteristicLoad()"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM