实时计算?

时间:2015-08-19 16:48:57

标签: javascript php jquery html ajax

我搜索了所有SOF,无法找到符合我问题的主题。 我编写了一个HTML表单,我将使用PHP稍后处理,但我在表单中有一些用户可以选择的选项。这是HTML代码

<label for="FIELD6">Model Type: </label><br>
<input type="radio" id="basemodel" name="FIELD6" value="Normal Model"  checked  onclick="doMath()" />Normal Model<br>
<input type="radio" id="workshopmodel" name="FIELD6" value="Workshop Model" onclick="doMath()" data-clicked="no" />Workshop Model
<p id="total"></p>

因此用户可以选择Normal和Workshop模型。我试图设置它,以便当用户检查workshopmodel单选按钮时,它会添加到总价格(在段落标记中指定)。这是我尝试使用我几乎不熟悉的语言jQuery:

function doMath() {
    var basePrice = 15;
    var baseModel = 0;
    var customModel = 5;
    var modelTotal = ;
    function workshopModel() {
        if(getElementById("workshopmodel").click(function() {
            modelTotal = basePrice + customModel;
        }
    }
    function defaultModel() {
        if(getElementById("basemodel").click(function() {
            modelTotal = total basePrice + baseModel;
        }
    }
}
$("#total").html('<font color="black">Total Price:</font><font color="#09ff00">' +  workshopModel() + '');

所以我试图让它实时添加到basePrice,然后打印它来代替标记为&#34; total&#34;每次用户改变选择(实时)。因此,如果用户选择workshopmodel,脚本将添加15和5,结果为20,如果他们选择basemodel,脚本将添加15和0,结果为15.我将变量modelTotal保留为undefined,因为它应该在以后定义在脚本中。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

这应该如你所愿。此外,不需要jQuery。

function doMath() {
    var basePrice = 15;
    var baseModel = 0;
    var customModel = 5;
    var modelTotal;
    if (document.querySelector('input[name="FIELD6"]:checked').value == "Normal Model") {
        modelTotal = basePrice + customModel;
    }

    if (document.querySelector('input[name="FIELD6"]:checked').value == "Workshop Model") {
        modelTotal = basePrice + baseModel;
    }
    console.log(modelTotal);
    document.getElementById('total').innerHTML = '<span style="color:black">Total Price:' + modelTotal + '</span>';
}
<label for="FIELD6">Model Type:</label>
<br>
<input type="radio" id="basemodel" name="FIELD6" value="Normal Model" onclick="doMath()" />Normal Model
<br>
<input type="radio" id="workshopmodel" name="FIELD6" value="Workshop Model" onclick="doMath()" />Workshop Model
<div id="total"></div>

答案 1 :(得分:0)

以下是我认为您要求的实例。

<label for="FIELD6">Model Type:</label><br>
<input type="radio" id="basemodel" name="FIELD6" value="Normal Model"  checked  onclick="doMath(this)" />Normal Model<br>
<input type="radio" id="workshopmodel" name="FIELD6" value="Workshop Model" onclick="doMath(this)" data-clicked="no" />Workshop Model
<p id="total"></p>

<script type="text/javascript">
    function doMath(ele) {
        var total = 15;
        if($(ele).attr('id') === 'workshopmodel') {
            total += 5;
        }
        $("#total").html('<font color="black">Total Price:</font><font color="#09ff00">' +  total);
    }
</script>