[英]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.