Javascript根据选中的选项计算值

我的任务是编辑现有的Joomla代码。这是一个javascript文件,它将根据检查的选项计算值。

file.html

2016 “Train-The-Trainer” Workshops

AERIAL

$50.00 per class/person
Sign up for both for $90.00


Members: 1 2 3 4 5 6 7 8 9 10 11
Total Amount (Cost + Processing Fee):
Additional 2.9% + $0.30 processing fee will be charged with all orders paid by credit card.

Please fax or email the order form to the office.

html.js

 function getPayPalProcessingFee() { var qty = jQuery('#paypal_submit_form select[name=number_of_members]').val(); qty = parseInt(qty); var cat_buttons = jQuery("input[name=cat]") var current_index = cat_buttons.index(cat_buttons.find(':checked')); switch (current_index){ case 0: return 3*qty; case 1: case 2: return 1.8*qty; } } function trainthetrainerForm_calculateItemAmount() { var qty = jQuery('#paypal_submit_form select[name=number_of_members]').val(); var current_val = jQuery("input[name=cat]:checked").val(); var amount = parseInt(qty) * current_val; amount = parseFloat(amount).toFixed(2); return amount; } function trainthetrainerForm_calculateFee() { var fee = getPayPalProcessingFee(); return fee; } function trainthetrainerForm_displayTotalAmount() { var amount = trainthetrainerForm_calculateItemAmount(); var fee = getPayPalProcessingFee(); var totalamount = parseFloat(amount) + parseFloat(fee); totalamount = parseFloat(totalamount).toFixed(2); jQuery('#paypal_submit_form input[name=tmp_total_amount]').val(totalamount); } function submitTrainthetrainerForm() { var qty = jQuery('#paypal_submit_form select[name=number_of_members]').val(); jQuery('#paypal_submit_form input[name=quantity_1]').val(qty); var totalAmount = 0; var amount = trainthetrainerForm_calculateItemAmount(); var processingFee = trainthetrainerForm_calculateFee(); totalAmount = amount + processingFee; jQuery('#paypal_submit_form input[name=business]').val('shana@same.org'); jQuery('#paypal_submit_form input[name=amount]').val(totalAmount); jQuery('#paypal_submit_form input[name=amount_2]').val(processingFee); jQuery('#paypal_submit_form').submit(); return true; } jQuery(document).ready(function (){ jQuery("#bal_number_of_members").change(function(){ trainthetrainerForm_displayTotalAmount(); }); jQuery("#bal_submit_btn").click(function() { submitTrainthetrainerForm(); }); trainthetrainerForm_displayTotalAmount(); }); 

如果用户检查输入id = both,则该值将乘以select id = bal_number_of_members的选项值。

否则,如果用户单击输入id = cat-aeral并输入id = cat-loto,则值wold乘以select id = bal_number_of_members的选项值。

我在输入名称temp_total_amount中收到错误NAN。

有帮助吗?

  1. 你的switch语句需要“break;” 在每个“案例”之后。
  2. 无论选择什么,这总是返回-1(未找到):

    var current_index = cat_buttons.index(cat_buttons.find(’:checked’))

这是一个工作代码:

  

2016 “Train-The-Trainer” Workshops

AERIAL

$50.00 per class/person
Sign up for both for $90.00


Members:
Total Amount (Cost + Processing Fee):
Additional 2.9% + $0.30 processing fee will be charged with all orders paid by credit card.

Please fax or email the order form to the office.