-1

可能重复:
如何检查此示例中是否选中了复选框(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);

});

});
4

3 回答 3

2

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

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

以防万一,对于未经检查的情况

is(":not(:checked)")
于 2013-01-16T17:58:24.137 回答
0

改为使用this.checked

newPoints = this.checked ? currentPoints - pointNum
                         : currentPoints + pointNum;
于 2013-01-16T17:57:30.020 回答
0

我很抱歉不清楚......我想出了如何解决这个问题。

通过在单击按钮时更改运算符值,减去它可以解决问题,以便下次单击将减少点。这很可能对其他人没有帮助..但它确实解决了问题。

于 2013-01-16T19:09:52.640 回答