我正在尝试为培训课程创建一个订单,其中包括现有或以前客户的折扣。它应该很简单 - 如果您是以前的学生,只需勾选复选框,表格将应用折扣。
我编写的代码几乎有效,但有一个明显的问题。你第一次检查盒子时,没有任何反应。然后,如果取消选中该框,则会应用折扣。再次选中框并删除折扣。这意味着,如果您选中该框一次,则不会发生任何事情,但如果您再次点击它,即使表明您不现有/以前的客户,您仍会收到折扣。
html如下:
<input type="checkbox" name="discounttick" value="Current or former student" id="discountbox" />
和jquery:
var discount = 1;
function discountfunction(){
if($("#discountbox").attr('checked')){
discount = 0.9;
}
else {
discount = 1;
}
}
$("#discountbox").click(discountfunction);
非常感谢任何帮助。
谢谢!
答案 0 :(得分:2)
attr
方法不是获取/设置您可以使用prop
的元素属性的好选项:
if($("#discountbox").prop('checked')){
您还可以使用三元运算符和change
事件:
$('#discountbox').change(function(){
discount = this.checked ? 0.9 : 1
})
答案 1 :(得分:0)
在dude周围交换你的变量
var discount = 1;
function discountfunction(){
if($("#discountbox").attr('checked')){
discount = 1;
}
else {
discount = 0.9;
}
}
$("#discountbox").click(discountfunction);
答案 2 :(得分:0)
尝试使用是而不是attr。
var discount = 1;
function discountfunction(){
if($("#discountbox").is(':checked')){
discount = 0.9;
}
else {
discount = 1;
}
}
$("#discountbox").click(discountfunction);