Jquery checkbox.checked总是返回false

时间:2014-01-14 17:54:47

标签: javascript jquery

$("tbody input[name='rooms_to_book']").on('change',function(){
    var current_row = $(this).closest("tr");
    var current_checkbox = current_row.find("input[name=checkbox]");
    if(current_checkbox.checked) {
        var price_per_night = parseFloat(current_row.find("td[name=price]").text().replace('$',''));
        var rooms_to_book = parseInt(current_row.find("input[name=rooms_to_book]").val());
        rooms_to_book = rooms_to_book ? rooms_to_book : 0;
        total_price = price_per_night * rooms_to_book;
    }else{
        total_price = 0;
    }
    current_row.find("td[name=total_price]").text('$'+ total_price);
});

current_checkbox.checked总是返回false,html是正确的。

4 个答案:

答案 0 :(得分:11)

jQuery对象没有checked属性。取代

current_checkbox.checked

current_checkbox.prop('checked')

http://api.jquery.com/prop

答案 1 :(得分:4)

您正在使用current_checkbox.checked,复选框没有任何“已检查”属性,但您可以使用$('#id')。is(':checked')

答案 2 :(得分:2)

您使用的是jQuery元素,而不是DOM元素。使用:

if(current_checkbox.prop("checked")) {

} //just for Steve <3

答案 3 :(得分:1)

current_row.find("input[name=checkbox]")

我很确定这会返回一个jQuery对象,不是底层复选框元素。

if(current_checkbox[0].checked)

应该工作。