0

私は Javascript の初心者ですが、Javascript の数学関数を使用して自分のサイト用の簡単なコスト見積もりを作成しました。

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 として、オンまたはオフにします。

助けてください

4

2 に答える 2

4

これを試して-

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 の Web サイトから - JavaScript コード規則

eval 関数は、JavaScript で最も誤用されている機能です。避けてください。

eval にはエイリアスがあります。Function コンストラクターは使用しないでください。文字列を setTimeout または setInterval に渡さないでください。

また、これを読んでください-

于 2013-03-31T11:58:26.563 に答える