Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么';与我的复选框关联的操作在第一次单击时不起作用吗?_Jquery_Checkbox - Fatal编程技术网

Jquery 为什么';与我的复选框关联的操作在第一次单击时不起作用吗?

Jquery 为什么';与我的复选框关联的操作在第一次单击时不起作用吗?,jquery,checkbox,Jquery,Checkbox,我正在尝试为培训课程创建一个订单,其中包括现有或以前客户的折扣。它应该很简单-只要勾选复选框,如果你是以前的学生,表格将应用折扣 我写的代码几乎可以工作,但有一个明显的问题。第一次勾选该复选框时,什么都没有发生。然后,如果您取消选中该框,它将应用折扣。再次选中该框,它将删除折扣。这意味着,如果您勾选一次该框,则不会发生任何情况,但如果您再次单击该框,则您将收到折扣,尽管表明您不是现有/以前的客户 html格式如下: <input type="checkbox" name="discount

我正在尝试为培训课程创建一个订单,其中包括现有或以前客户的折扣。它应该很简单-只要勾选复选框,如果你是以前的学生,表格将应用折扣

我写的代码几乎可以工作,但有一个明显的问题。第一次勾选该复选框时,什么都没有发生。然后,如果您取消选中该框,它将应用折扣。再次选中该框,它将删除折扣。这意味着,如果您勾选一次该框,则不会发生任何情况,但如果您再次单击该框,则您将收到折扣,尽管表明您不是现有/以前的客户

html格式如下:

<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);