Acho que não pode passar o parâmetro com o mesmo nome (sun) pra função
do each, senão não vai acessar a variavel 'externa', por causa do
escopo. E o ideal seria adicionar o evento via javascript (e também
usar <label> mas aí já não tem a ver com o js):
<form name="listForm" id="listForm">
<input type="checkbox" name="choice" value="2" />2<br/>
<input type="checkbox" name="choice" value="5" />5<br/>
<input type="checkbox" name="choice" value="10" />10<br/>
<input type="checkbox" name="choice" value="20" />20<br/>
Total: <input type="text" size="2" name="total" id="total" value="0"/
>
</form>
$(document).ready(){
//....
var $total = $('#total'), val, $cb = $total.find(':checkbox');
$cb.onchange(function(){
var soma = 0;
$cb.each(function(){
if (this.checked)
soma += +$(this).val();
});
$total.val( soma );
});
});
outro jeito de se fazer:
var $total = $('#total'), $form = $('#listForm');
$form[0].reset(); //evitar autocomplete do browser
$form.find(':checkbox').change(function(){
var valor = $(this).val();
$total.val( +$total.val() + (this.checked ? +valor : -valor) );
});
On 17 jun, 09:41, Ruan Carlos <
ruanl...@gmail.com> wrote:
> <script type="text/javascript">
> function checkTotal() {
> var sun = 0;
> $("listForm:checked").each(
> function(sun) {
> sun = sun + this.value;
> //ou this.val() não lembro
> }
> }
> $("#total").val(sun);
> // ou $("#total").text(sun);
> }
> </script>
>
> 2009/6/17 Tecsite Estúdio Digital - Santos/SP <
tecs...@gmail.com>