在JQuery 1.9中有一个问题取消选中框

时间:2013-07-23 11:48:06

标签: jquery

我正在根据点值组合技能列表,当我查看点值时,我想要闪烁一条消息并取消选中他们选择的框。我一直在尝试使用.prop(“checked”,false),但如果没有明确说明取消选中哪个复选框,我似乎无法使其工作。我想用他们刚检查的那个。

我曾尝试过使用和不使用checkboxradio(刷新)

http://jsfiddle.net/mattcushing/K5szE/7/

function calculateTotal() {
    var curr = starting;
    var checked = $("input:checked").each(function (item) {
        curr -= +($(this).prev(".amt").text());
    });
    if(curr < 0){
    alert("Please change your options, you can't have a negative value");
    $(this).prop("checked", false).checkboxradio("refresh");
    }
    else{
    $("#remaining").text(curr);
    }

2 个答案:

答案 0 :(得分:1)

DEMO HERE

您正在使用this关键字脱离上下文。尝试从calculateTotal()返回值,并在事件处理程序中使用this关键字。

$("input[type=checkbox]").click(function () {
        changeCostRogue();
        changeCostWarrior();
        changeCostMage();
        var curr = calculateTotal();
        if(curr < 0){
        alert("dude, no negatives!");
        $(this).prop("checked", false).checkboxradio("refresh");
        }
        else{
        $("#remaining").text(curr);
        }
    });

function calculateTotal() {
        var curr = starting;
        var checked = $("input:checked").each(function (item) {
            curr -= +($(this).prev(".amt").text());
        });
        return curr;
}

答案 1 :(得分:0)

您所要做的就是将this发送到您的calculateTotal函数

calculateTotal(this);

并改变你的功能签名,如

function calculateTotal(this) {