将无线电选择绑定到变量以在等式中使用

时间:2014-01-24 15:48:09

标签: javascript jquery html bind radio

我有一个广播组,我用它来选择不同的选项,并改变呈现给用户的内容:

$(document).ready(function () {
 $("input[name='status']").click(function() {
        console.log("changed");
       if ($("input[name='status']:checked").val() == '36')
           $(".output2").html("4.36%" + "<span class=\"expandedTermsText\"> APR<\/span>");
       if ($("input[name='status']:checked").val() == '48')
            $(".output2").html("4.74%" + "<span class=\"expandedTermsText\"> APR<\/span>");
         if ($("input[name='status']:checked").val() == '60')
            $(".output2").html("4.94%" + "<span class=\"expandedTermsText\"> APR<\/span>");
        else if ($("input[name='status']:checked").val() == '72')
            $(".output2").html("5.30%" + "<span class=\"expandedTermsText\"> APR<\/span>");
    });
});

我还有另一个函数用于显示等式的结果,但可以选择将APR设置为硬编码值:

$(document).ready(function () {
$(function () {
    $("body").on("blur", "#vehiclePrice,#estimatedTaxesAndFees,#downPayment,#manufacturerRebate,#tradeInValue,#amtOwedOnTrade,#extendedWarranty,#gapInsurance,#serviceContract", function () {
        updateTotal();
    });
    var updateTotal = function () {
        var input1 = parseInt($('#vehiclePrice').val()) || 0;
        var input2 = parseInt($('#estimatedTaxesAndFees').val()) || 0;
        var input3 = parseInt($('#downPayment').val()) || 0;
        var input4 = parseInt($('#manufacturerRebate').val()) || 0;
        var input5 = parseInt($('#tradeInValue').val()) || 0;
        var input6 = parseInt($('#amtOwedOnTrade').val()) || 0;
        var input7 = parseInt($('#extendedWarranty').val()) || 0;
        var input8 = parseInt($('#gapInsurance').val()) || 0;
        var input9 = parseInt($('#serviceContract').val()) || 0;       
        var sum=input1 + input2 - input3 - input4 - input5 + input6 + input7 + input8 + input9;

         $('.total').text('$'+sum.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'));
 var principle = parseInt($('#vehiclePrice').val()) || 0;
 var apr = .0530;
 var months = 72;
 var perMonth = sum*(apr/12)/(1-Math.pow((1+(apr/12)),-months)).toFixed(2);              
        $('.perMonth').text('$'+perMonth.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'));
    };
    var output_total = $('#total');
});

});

我需要的是拥有这两个变量:      var apr = .0530;      var months = 72;

绑定到用点击表示的收音机更改,因为我将收音机选项显示为按钮。

我有小提琴:

Fiddle

点击不适用于小提琴,但他们正在我的本地工作...我只是想找到一种方法使公式动态,以便当我点击无线电时它会更新var apr = .0530; var months = 72;因此。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果我想念你,那就对不起!

您可以将这些值作为attriutes绑定到您的无线电,例如:

<input type="radio" value="...." name="status" apr="0.0530" months="72"/> 
...etc

然后你可以使用$("input[name='status']:checked").attr("apr").....

来获取它

更新根据您的评论,我会这样做:

var updateTotal = function () {
    ....       
    var apr = $("input[name='status']:checked").attr("apr");
    var months = $("input[name='status']:checked").attr("months");
    ....
};