Javascript 删除促销代码后最终金额不变

Javascript 删除促销代码后最终金额不变,javascript,jquery,html,Javascript,Jquery,Html,我正在做一个项目,用户可以选择书,它将计算金额。然后它会请求书籍的支持,然后是促销代码 上面的项目正在工作,但我不确定我的代码是否是最好的。或者有没有最好的办法 让我们谈谈这个问题 我得到了关于促销代码的问题。我正在做的是,一旦用户在promocode中输入5个字符,它将检查promocode是否有效,并从数据库中检查。如果有效,那么它将使用var finalAmt=$youPay.text捕捉总成本;并计算数量并显示。如果没有促销代码,则会显示最终成本 我从其他方面得到了这个问题。如果用户输入

我正在做一个项目,用户可以选择书,它将计算金额。然后它会请求书籍的支持,然后是促销代码

上面的项目正在工作,但我不确定我的代码是否是最好的。或者有没有最好的办法

让我们谈谈这个问题

我得到了关于促销代码的问题。我正在做的是,一旦用户在promocode中输入5个字符,它将检查promocode是否有效,并从数据库中检查。如果有效,那么它将使用var finalAmt=$youPay.text捕捉总成本;并计算数量并显示。如果没有促销代码,则会显示最终成本

我从其他方面得到了这个问题。如果用户输入第一次正确的促销代码,它将计算它,但如果第二次用户删除促销代码,则应显示最终金额,但我没有获得最终金额。我得到了用户第一次输入促销代码的金额

示例代码为

BOOKS | 2%
任务的实例

choose 3 books      3*5= 15
choose support Yes 15*2= 30
Enter promocode BOOKS 30 * (2/100)=0.6

Final amount 30- 0.6= 29.4

Pay amount is 29.4
如果用户删除了促销代码,那么我的最终金额仍显示为29.4。应该是30

促销代码中存在一些问题

函数myFunction{ var贴现率=[]; 折扣mt[0]=0; 贴现率[1]=5; 折扣mt[2]=10; 贴现率[3]=15; var n=$.checkBoxLabel:checked.length; var乘=5*n; var totalAmount=$'totalAmount'.html$+乘法; var discountAmount=$'discountAmount'.html$+discountAmt[n]; var youPay=$'youPay'.htmldiscontamt[n]; 返回[总金额,折扣金额,youPay]; } $document.readyfunction{ var$checks=$'。checkBoxLabel:checkbox'; $checks.clickfunction{ 如果$checks.filter':checked'.length==0{ $'.calculationStrip'.hide; }否则{ $'.calculationStrip'.show; var代码=myFunction; $'youPay'.htmlcodes[2].html; } }; $ckbCheckAll.clickfunction{ $.checkBoxLabel.prop'checked',$this.prop'checked'; var代码=myFunction; $'.calculationStrip'.show; $'youPay'.htmlcodes[2].html; }; $.checkBoxLabel.changefunction{ 如果!$this.propchecked{ $ckbCheckAll.propchecked,false; } }; /*这里是自定义脚本*/ $'.support'。单击,函数{ var代码=myFunction; 如果$this.val=='1'{ var a=code[2].html; var totCost=a*2; $'youPay'.htmltocost; }否则{ $'youPay'.htmlcodes[2].html; } }; $'procode'.keyup函数{ 如果this.value.length>=5{ var checkPromocode=$this.val; $.ajax{ 类型:POST,, url:baseUrl+/C_注册/检查促销代码, 数据:{ checkPromocode:checkPromocode }, 成功:功能响应{ var obj=JSON.parseresponse; //alertobj.message; var finalAmt=$youPay.text; var代码=myFunction; $'promocodeMessage'.htmlobj.message; var sellingprice=finalAmt-finalAmt*obj.折扣/100; $'youPay'.htmlsellingprice.toFixed2; }//结束成功fn };//END$.ajax }否则{ $youPay.text; $'promocodeMessage'.html请检查您的促销代码; } }; }; 全选 第一册 第二册 第三册 支持字段如果用户选择“是”,则将按图书数量计算总成本。例如,用户选择了两本书,则总成本为10*2=20

对 不 最终支付金额:-$

使用$'.support:checked'.val可以获取当前选定单选按钮的值。我修改了你的代码来利用这个

函数myFunction{ var贴现率=[]; 折扣mt[0]=0; 贴现率[1]=5; 折扣mt[2]=10; 贴现率[3]=15; var n=$.checkBoxLabel:checked.length; var乘=5*n; var totalAmount=$'totalAmount'.html$+乘法; var discountAmount=$'discountAmount'.html$+discountAmt[n]; var youPay=$'youPay'.htmldiscontamt[n]; 返回[总金额,折扣金额,youPay]; } var$totalCost=0; 函数校验码{ 如果$'procode'.val.length>=5{ var checkPromocode=$'procode'.val; $.ajax{ 类型:POST,, url:baseUrl+/C_注册/检查促销代码, 数据:{ checkPromocode:checkPromocode }, 成功:功能响应{ var obj=JSON.parseresponse; //alertobj.message; var finalAmt=总成本美元; var代码=myFunction; $'promocodeMessage'.htmlobj.message; var sellingprice=finalAmt-finalAmt*obj.折扣/100; $'youPay'.htmlsellingprice.toFixed2; }//结束成功fn };//END$.ajax }否则{ var代码=myFunction; //根据当前选定的单选按钮重新计算该值 如果$'.support:选中'.val=='1'{ 变量a=代码[2]。htm