0
if($(this).prop('checked', true)){
    $(this).prop('checked',false);
        console.log('its checked yo');
    } else if(!$(this).is(':checked')){
        $('[type=checkbox]').prop("checked", false);
        $(this).prop('checked', true);
        console.log("Well this certainly isn't checked");
    }
}

http://jsfiddle.net/bkj8n/2/#run 所以我的设置是针对一个表单,它为您使用复选框选择的不同选项添加定价。对于这组项目,一次只能选择一个选项。因此,当另一个项目被选中时,我取消选中所有框,然后检查他们选择的那个。我已经尝试过使用 .prop() .attr() 等等,但它没有奏效。每次都会发生三件事之一。

  1. 它有效,我只能选择一个,而其他的则被取消选择。但是:我无法取消选中该项目,并且添加了其他复选框的价格(值),这意味着它认为它们仍然被选中。

  2. 它说无论如何他们都经过检查......即使他们没有。所以没有任何效果。

  3. 值已正确添加。我一次只能获得一个选项,我可以再次单击该选项将其设置回零。但是:复选标记未显示在框中。

这让我很沮丧。谢谢!

4

1 回答 1

4

你需要这个 -

if($(this).prop('checked')){

你使用的是setter 不是一个getter

于 2013-05-29T18:53:47.780 回答