jQuery - 已检查或未选中的值?过滤

时间:2013-01-16 17:54:35

标签: javascript jquery html

  

可能重复:
  How to check if check box is checked in this example (javascript/jQuery.)

我的复选框遇到了问题。我试图在点击按钮时设置一个事件,不同的是操作是否被选中。

这是我的代码

$(document).ready(function(){

$('.pointBox').click(function(event){
    var operator = $(this).find('input').attr('operator');
    var pointNum = parseInt($(this).find('input').val());
    var pointsFromHtml = $('#newPoints').val();
    var currentPoints;
    var newPoints;

    if(pointsFromHtml.charAt(0) == '+'){
        currentPoints = parseInt(pointsFromHtml.substring(1));
    } else {
        return;
    }

    switch(operator){

        case 'addition':
            if(!$(this).attr('checked')){
                newPoints = currentPoints + pointNum;
            }
            if($(this).attr('checked')){
                alert();
                newPoints = currentPoints - pointNum;
            }
            break;
        case 'subtraction':
            newPoints = currentPoints - pointNum;
            break;
    }

    $('#futurePoints').text('+' + newPoints);
    $('#newPoints').attr('value', newPoints);

});

});

3 个答案:

答案 0 :(得分:2)

假设问题是if语句不起作用,我已经成功了

    if($("#something").is(":checked")){
//do something
}

为了以防万一,为了取消选中,请使用

is(":not(:checked)")

答案 1 :(得分:0)

改为使用this.checked

newPoints = this.checked ? currentPoints - pointNum
                         : currentPoints + pointNum;

答案 2 :(得分:0)

我为不清楚而道歉..我想出了如何解决问题。

通过在单击按钮时更改操作符值,减去它可以修复问题,以便下次单击将减少点数。这很可能不会帮助其他任何人......但它确实解决了这个问题。