复选框值始终返回“打开”?

时间:2013-05-17 14:36:34

标签: jquery forms

我正在尝试返回复选框的值以启用和禁用按钮。 使复选框不是问题,问题是复选框值始终返回。我应该如何获得一个值,表明是否选中了复选框?

HTML:

<form>
    <input type="checkbox" id="checkbox" /> <label>Do you agree  </label><br />
    <input type="button" value="Continue" id="button" disabled="disabled" />
</form>  

Javascript:

$('#checkbox').change(function(){
    var checkboxValue = $(this).val();
    alert(checkboxValue);
});

7 个答案:

答案 0 :(得分:39)

尝试使用prop('已检查');

var checkboxValue = $(this).prop('checked');

答案 1 :(得分:7)

您似乎需要checked

var checkboxValue = this.checked;

答案 2 :(得分:2)

这里有几件事情正在进行中

  1. 复选框没有值
  2. 你应该检查是否检查了它
  3. 试试这个

    $('#checkBox').prop('checked');
    

    如果检查过你应该返回true,如果未检查则为false。

答案 3 :(得分:1)

尝试使用(如果你使用的是jQuery 1.6 +):

var checkboxValue = $(this).prop('checked');

http://api.jquery.com/prop/

这应该正确返回truefalse

答案 4 :(得分:0)

或者如何使用:checked Selector

$(this).is(':checked') // returns true if checked and false otherwise

答案 5 :(得分:0)

尝试使用 is(':checked')而不是 .val

$('#checkbox').change(function(){
    var checkboxValue = $(this).is(':checked');
    alert(checkboxValue);
});

返回true或false

另见 jQuery val() and checkboxes

答案 6 :(得分:0)

根据@ gdoron的回答,这是一个执行此操作的代码,没有jquery。

document.getElementById("checkbox").addEventListener("change", function() {
    if (this.checked) {
        //Whatever u want to do if checked
    }
    else {
        //Whatever u want to do if not checked
    }
})

尝试选中/取消选中以下代码段中的复选框,以查看此操作...

&#13;
&#13;
document.getElementById("checkbox").addEventListener("change", function() {
        if (this.checked) {
            //Whatever u want to do if checked
            alert("u check");
        }
        else {
            //Whatever u want to do if not checked
            alert("u uncheck");
        }
    })
&#13;
<input type="checkbox" id="checkbox" />Coconuts?
&#13;
&#13;
&#13;