总金额显示为NAN,javascript

时间:2014-08-01 05:58:20

标签: javascript

我有一个表单,其中我有两组单选按钮和一个文本框来输入数量值。 根据所选的单选按钮和数量文本框中的值,总文本框应填充值。 我使用数组进行计算,但总字段中的值显示为NAN。 任何人都可以检查我的代码,让我知道我错在哪里?

**HTML**

<form id="orderform" name="orderform" >
                    <fieldset data-role="controlgroup">
                         <legend><b>Choice</b></legend>
                         <input type="radio" name="choice" id="veg" value="1" checked onclick="total()">
                         <label for="veg">Vegetarian</label>
                         <input type="radio" name="choice" id="nonveg" value="2" onclick="total()">
                         <label for="nonveg">Meat Lover</label>
                     </fieldset>
                    <fieldset data-role="controlgroup">
                        <legend><b>Size</b></legend>
                        <input type="radio" name="size" id="small" onclick="total()">
                        <label for="small">Small</label>
                        <input type="radio" name="size" id="medium" onclick="total()">
                        <label for="medium">Medium</label>
                        <input type="radio" name="size" id="large" onclick="total()">
                        <label for="large">Large</label><span class="validation"></span>
                    </fieldset>
                            <div><b>Quantity</b>
                        <input type="text" id ="qty" name="qty" size="5" onclick="total()">
                    </div><div>
                        <b>Total</b>
                        <input type="text" id="amt" name="amt" readonly="readonly"> 
                    </div>

的Javascript 的Javascript

var array=[[8.99,9.99,10.99],[9.99,10.99,11.99]];

    function total()
    {
        var row = document.querySelector('input[name="choice"]:checked').value;
       var column = document.querySelector('input[name="size"]:checked').value;
        var qty=document.getElementById("qty").value;
        var total=0;  
            total= (array[row][column]+1)*qty;
       document.orderform.amt.value = total;
    }

2 个答案:

答案 0 :(得分:1)

您必须更改html中的尺寸组,如下所示

         <legend><b>Size</b></legend>
         <input type="radio" name="size" id="small" value="1" onclick="total()">
         <label for="small">Small</label>
         <input type="radio" name="size" id="medium" value="2" onclick="total()">
         <label for="medium">Medium</label>
         <input type="radio" name="size" id="large" value="3" onclick="total()">
         <label for="large">Large</label><span class="validation"></span>

它适合你

答案 1 :(得分:0)

var column = document.querySelector('input[name="size"]:checked').value;

你可以提醒(列),你会发现该值是“开启”。因为您没有在所有尺寸组中设置任何值