【发布时间】:2013-12-09 15:12:36
【问题描述】:
当单击表单输入时,我试图将它们的值相加以获得订单的总价。
与其试图用语言解释,不如用jsFiddle 来说明我正在尝试做的事情。
如果您单击顶行中的任何按钮并从一个按钮移动到另一个按钮,您所看到的效果会很好。如果在单击顶行中的按钮后,然后单击“添加 1 个专色”按钮,它也可以正常工作。
如果您在仍选中专色按钮的情况下尝试更改所需的卡片数量,则会出现问题。
您必须取消选择两行中的按钮,然后重新选择才能获得正确的值。
值应该是(仅顶行/添加底行):
- 495 / 770
- 550 / 847
- 605 / 935
-
660 / 1012
var spec_price = 0, env_price = 0, liner_price = 0, card_price = 0, colour_price = 0, corner_price = 0; var spec_desc = '', env_desc = '', liner_desc = '', card_desc = '', colour_desc = '', corner_desc = ''; $('.order-option + label').click(function(e) { var radio = $(this).attr('for'); radio = $('#' +radio ); switch($(radio).attr('name')) { case 'specifications': spec_price = parseInt(radio.val()); spec_desc = '<p>'+radio.data('title')+' </p>'; break; case 'envelopes': env_price = parseInt(radio.val()); env_desc= '<p>'+radio.data('title')+' </p>'; break; case 'liners': liner_price = parseInt(radio.val()); liner_desc ='<p>'+radio.data('title')+' </p>'; break; case 'cards': card_price = parseInt(radio.val()); card_desc = '<p>'+radio.data('title')+' </p>'; break; case 'colours': colour_price = parseInt(radio.val()); colour_desc = '<p>'+radio.data('title')+' </p>'; break; case 'corners': corner_price = parseInt(radio.val()); corner_desc = '<p>'+radio.data('title')+' </p>'; break; } switch($(radio).attr('id')) { case 'specifications-radio1': $('#cards-radio').val('275'); break; case 'specifications-radio2': $('#cards-radio').val('297'); break; case 'specifications-radio3': $('#cards-radio').val('330'); break; case 'specifications-radio4': $('#cards-radio').val('352'); break; } var total_price = +spec_price + env_price + liner_price + card_price + colour_price + corner_price; var full_desc = spec_desc + env_desc + liner_desc + card_desc + colour_desc + corner_desc; if(radio.is(':checked')) { e.preventDefault(); var subtract = parseInt(radio.val()); var remove = radio.data('title'); total_price = total_price - subtract; full_desc = full_desc.replace(remove,''); radio.removeAttr('checked'); if($('.order-option:checked').length < 1) { spec_price = 0, env_price = 0, liner_price = 0, card_price = 0, total_price = 0, colour_price = 0, corner_price = 0; spec_desc = '', env_desc = '', liner_desc = '', card_desc = '', full_desc = '', colour_desc = '', corner_desc = ''; } } // alert(total_price); $('.order-preview-total').html('$'+total_price+' (inc gst)'); $('#order-preview-total').val('$'+total_price); $('.order-preview-content').html(full_desc); $('#order-preview-content').val(full_desc); });
有人知道我哪里出错了吗?
【问题讨论】: