-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

I apologize for being unclear.. I figured out how to solve the problem.

By changing the operator value when the button is clicked, to subtraction it fixes the problem so that it's next click will reduce the points. This more than likely won't help anyone else.. but it did solve the problem.

于 2013-01-16T19:09:52.640 に答える
0

this.checked代わりに使用してください。

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