Jquery 为什么';与我的复选框关联的操作在第一次单击时不起作用吗?
我正在尝试为培训课程创建一个订单,其中包括现有或以前客户的折扣。它应该很简单-只要勾选复选框,如果你是以前的学生,表格将应用折扣 我写的代码几乎可以工作,但有一个明显的问题。第一次勾选该复选框时,什么都没有发生。然后,如果您取消选中该框,它将应用折扣。再次选中该框,它将删除折扣。这意味着,如果您勾选一次该框,则不会发生任何情况,但如果您再次单击该框,则您将收到折扣,尽管表明您不是现有/以前的客户 html格式如下:Jquery 为什么';与我的复选框关联的操作在第一次单击时不起作用吗?,jquery,checkbox,Jquery,Checkbox,我正在尝试为培训课程创建一个订单,其中包括现有或以前客户的折扣。它应该很简单-只要勾选复选框,如果你是以前的学生,表格将应用折扣 我写的代码几乎可以工作,但有一个明显的问题。第一次勾选该复选框时,什么都没有发生。然后,如果您取消选中该框,它将应用折扣。再次选中该框,它将删除折扣。这意味着,如果您勾选一次该框,则不会发生任何情况,但如果您再次单击该框,则您将收到折扣,尽管表明您不是现有/以前的客户 html格式如下: <input type="checkbox" name="discount
<input type="checkbox" name="discounttick" value="Current or former student" id="discountbox" />
任何帮助都将不胜感激
谢谢
attr
方法不是获取/设置元素属性的好方法,您可以使用prop
:
if($("#discountbox").prop('checked')){
您还可以使用三元运算符和更改事件:
$('#discountbox').change(function(){
discount = this.checked ? 0.9 : 1
})
交换你的变量,伙计
var discount = 1;
function discountfunction(){
if($("#discountbox").attr('checked')){
discount = 1;
}
else {
discount = 0.9;
}
}
$("#discountbox").click(discountfunction);
尝试使用is而不是attr
var discount = 1;
function discountfunction(){
if($("#discountbox").is(':checked')){
discount = 0.9;
}
else {
discount = 1;
}
}
$("#discountbox").click(discountfunction);
它看起来对我有用。请参见何时调用作用于已更改的折扣
变量的代码?否,OP可能是正确的<代码>折扣
看起来像是价格的乘数。
var discount = 1;
function discountfunction(){
if($("#discountbox").is(':checked')){
discount = 0.9;
}
else {
discount = 1;
}
}
$("#discountbox").click(discountfunction);