亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 javascript 計算后的表單輸入中擺脫彈出窗口“請選擇一個有效值。兩個最接近的有效值是

如何在 javascript 計算后的表單輸入中擺脫彈出窗口“請選擇一個有效值。兩個最接近的有效值是

白豬掌柜的 2023-05-19 14:57:43
我有一個非常簡單的表格,它詢問一個物品容器的價格,然后還輸入另一個容器中物品的數量。javascript 簡單地將單個項目的總數除以價格以獲得“每單位”成本。該腳本有效,但每次我運行它時,它都會在價格輸入框中彈出一個通知“請選擇一個有效值。兩個最接近的有效值是...”,因為價格輸入是小數。如果我在 HTML 中編輯價格的輸入行并添加“step="0.01",那么腳本不會輸出任何內容。奇怪的是,我在輸出框中添加了“step="any"",它起作用了,因為我在輸出框中也得到了相同的彈出窗口。我絕對想要單位成本輸出中的大小數位。這是 HTML(它使用 CSS Grid 設置樣式,所以一切都按照我想要的方式定位):<html><head><meta charset="utf-8" /><link rel="stylesheet" href="style.css"><title>Unit Cost Calculator</title></head><body><div class="contain">  <div class="wrapper">    <div class="form">      <h2>Unit Cost Calculator</h3>      <form id="unitCost" action="">        <p>          <label for="itemdesc">Item Description</label>          <input id="itemdesc" name="itemdesc" type="text" />        </p>        <p>          <label for="price">Price</label>          <input id="price" name="price" type="number" />        </p>        <p>          <label for="quantity">Qty.</label>          <input id="quantity" name="quantity" type="number" />        </p>        <p>          <label for="unit">Unit Cost</label>          <input id="unit" name="unit" type="number" step="any" />        </p>        <p>          <label for="singleUnitCost">Single Unit Cost</label>          <input id="singleUnitCost" name="singleUnitCost" type="number" />        </p>        <p>        </p>        <p>        </p>        <p>        </p>        <p>          <label for="subm"></label>          <input type="submit" value="Calculate Per Unit Cost" onclick="units()" />        </p>        <p>          <label for="rest"></label>          <input type="reset" value="Reset" />        </p>      </form>    </div>  </div></div>另外,在腳本中,我想將價格乘以 0.06(這是 6% 的銷售稅率),再將價格加回去,這樣我實際上得到的是加稅后的價格,但是當我這樣做時“myResult”代碼行的數學運算如下:var myResult=(pric*0.06+pric)/qty;然后腳本根本不起作用。啊。我很快就學會了 javascript 數學和形式令人沮喪。
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

我認為主要錯誤是您試圖將values 直接用作數字。如果將它們設置為實際數字,一切都會按預期進行。通常,您希望價格保留兩位小數:


function units() {

   var pric=Number(document.getElementById('price').value);

   var qty=Number(document.getElementById('quantity').value);

   var result=document.getElementById('unit');

  debugger;

   var myResult=(pric*0.06+pric)/qty;

     document.getElementById('unit').value=myResult;

}

<div class="contain">

  <div class="wrapper">

    <div class="form">

      <h2>Unit Cost Calculator</h3>


      <form id="unitCost" action="javascript:void(0);">

        <p>

          <label for="itemdesc">Item Description</label>

          <input id="itemdesc" name="itemdesc" type="text" />

        </p>

        <p>

          <label for="price">Price</label>

          <input id="price" name="price" type="number" step="0.01"/>

        </p>

        <p>

          <label for="quantity">Qty.</label>

          <input id="quantity" name="quantity" type="number" />

        </p>

        <p>

          <label for="unit">Unit Cost</label>

          <input id="unit" name="unit" type="number" step="any" />

        </p>

        <p>

          <label for="singleUnitCost">Single Unit Cost</label>

          <input id="singleUnitCost" name="singleUnitCost" type="number" />

        </p>

        <p>

        </p>

        <p>

        </p>

        <p>

        </p>

        <p>

          <label for="subm"></label>

          <input type="submit" value="Calculate Per Unit Cost" onclick="units()" />

        </p>

        <p>

          <label for="rest"></label>

          <input type="reset" value="Reset" />

        </p>

      </form>

    </div>

  </div>

</div>


主要的變化是pric和qty在Number函數內部。另外,請注意表格的action是javascript:void(0);這樣的,因此不會發送任何內容。您需要在您的示例中將其改回。


查看完整回答
反對 回復 2023-05-19
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號