2014-01-14 105 views
4
$("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是正確的。jquery checkbox.checked總是返回false

+5

的HTML可能是正確的,但你需要將其添加到您的問題。 – j08691

+0

檢查這可能會幫助你http://api.jquery.com/attr/ – Charles380

+1

'checked'不是一個jQuery對象的屬性 – crush

回答

2

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

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

} //just for Steve <3 
1

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

我相當肯定,這將返回一個jQuery對象,底層的複選框元素。

if(current_checkbox[0].checked) 

應該工作。 。

4

您使用current_checkbox.checked,複選框並沒有任何「檢查」的屬性,但你可以用$(「#ID」)是(「:檢查」)