2011-05-03 204 views
1

我目前有這個代碼,它可以在複選框被選中時計算複選框的總值。我需要知道如何將單選按鈕添加到此計算中。我需要這樣做,因爲它增加了一個總數並且實時顯示它。jquery複選框和單選按鈕

$(document).ready(function() { 
    function recalculate() { 
     var sum = 0; 
     var base = 0; 

     $("input[type=checkbox]:checked").each(function() { 
      sum += parseInt($(this).attr("rel")); 
     }); 

     $("#output").html(sum); 
    } 

    $("input[type=checkbox]").change(function() { 
     recalculate(); 
    }); 

}); 


    <td width="236" height="25" align="left">Booking Period:</td> 
</tr> 
      <tr> 
       <td height="10" align="right" class="align_left">One Day: ₤49 </td> 
       <td> 
        <input type="radio" name="duration" id="oneday" value="One Day Rental"/> 
       </td> 
       </tr> 

    <tr> 
       <td height="30" align="right" class="align_right">Two Day: ₤69</td> 
       <td> 
        <input type="radio" name="duration" id="two" value="Two Day Rental"/> 
       </td> 
       </tr> 
    <tr> 
       <td height="30" align="right" class="align_right">Weekend: ₤79</td> 
       <td> 
        <input type="radio" name="duration" id="weekend" value="Weekend Rental"/> 
       </td> 
       </tr> 

回答

1

如果此頁面上只有一個單選按鈕組,您可以使用:radio[name='duration']:checked來獲取當前選中的單選按鈕。

function recalculate() { 
    var sum = 0; 
    var base = 0; 

    $("input[type=checkbox]:checked").each(function() { 
     sum += parseInt($(this).attr("rel"), 10); 
    }); 

    sum += parseInt($(":radio[name='duration']:checked").attr("rel"), 10); // or some attribute that has the price 
    $("#output").html(sum); 
} 

而不是觸發重新計算只需添加:radio[name='duration']選擇:

$("input[type=checkbox], :radio[name='duration']").change(function() { 
    recalculate(); 
}); 

側面說明,你應該包括在基數向parseInt(, 10)是在安全方面。

Example on jsfiddle

+0

嘿馬克感謝您的幫助。由於某些原因,這不會輸出任何內容。 – Simon 2011-05-03 11:59:34

+0

對不起隊友,搞定了。你是一個傳奇。謝啦 – Simon 2011-05-03 12:02:28

0

我會假設你會做同樣的方式:

$("input[type=radio]:checked").each(function() { 
    sum += parseInt($(this).attr("rel")); 
}); 

$("input[type=radio]").change(function() { 
    recalculate(); 
}); 

嗯?

+0

這會否加在一起不過。或作爲單獨的輸出 – Simon 2011-05-03 11:52:18

+0

這將把它們加在一起變成總和變量...你想讓它們分開嗎? – shadyyx 2011-05-03 11:54:29

+0

不,我想讓他們在一起 – Simon 2011-05-03 12:01:14