为什么第一次点击时与我的复选框绑定的操作不起作用?

时间:2012-09-28 11:05:00

标签: jquery checkbox

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

我编写的代码几乎有效,但有一个明显的问题。你第一次检查盒子时,没有任何反应。然后,如果取消选中该框,则会应用折扣。再次选中并删除折扣。这意味着,如果您选中该框一次,则不会发生任何事情,但如果您再次点击它,即使表明您现有/以前的客户,您仍会收到折扣。

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

非常感谢任何帮助。

谢谢!

3 个答案:

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