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