簡體   English   中英

JavaScript-僅在選中時才計算復選框

[英]JavaScript - calculate Checkbox ONLY when checked

我是Java語言的初學者,但是我使用Java語言的數學函數為我的網站構建了一個簡單的費用估算器。

function calc(form) {
    a = eval(form.a.value)
    b = eval(form.b.value)
    c = eval(form.c.value)
    x = a*(b+c)
    form.ans.value = parseFloat(x).toFixed(2);
}

形式很簡單:

<form name="formx">
    <label for="a">Number of Units :</label>
    <input type="number" size=3 value=0 name="a">
    <label for="b">Price per Unit :</label>
    <select name="b">
        <option value="0.04">0.04</option>
        <option value="0.05">0.05</option>
        <option value="0.06">0.06</option>
    </select>
    <label for="c">Tick if Urgent</label>
    <input name="c" type="checkbox" value="0.01" />
    <input class="button" type="button" value="  CALCULATE  " onClick="calc(this.form)">
    <label for="ans">Total Cost :</label>
    <input value=" £ " name="ans" size=6>
</form>

對於緊急服務,“ c”值為0.01,但是只有在選中此復選框時才需要添加它,否則它的值必須為0。但是我似乎無法弄清楚,因為它總是添加“ c”值為0.01(選中或未選中)。

請幫忙

嘗試這個-

function calc(form) {
    var a = parseFloat(form.a.value)
    var b = parseFloat(form.b.value)
    var c = (form.c.checked) ? parseFloat(form.c.value) : 0;
    var x=a*(b+c)
    form.ans.value=parseFloat(x).toFixed(2);
}

注意 -

eval是邪惡的

來自Douglas Crockford的網站-JavaScript 代碼約定

eval函數是JavaScript中最常被濫用的功能。 躲開它。

eval有別名。 不要使用Function構造函數。 不要將字符串傳遞給setTimeout或setInterval。

另外,請閱讀以下內容-

考慮使用單選按鈕而不是復選框。 然后,您可以將多個值鏈接到單個對象。 有關確切差異,請參見http://www.w3schools.com/html/html_forms.asp

暫無
暫無

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

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