2013-05-10 77 views
2

我想,如果一个复选框被选中的计算乘以2,但不工作如果检查不工作

$('#kilometros').keyup(function() { 

    var kilometros = parseFloat($(this).val().toString().replace(",", ".")); 
    var precioKilometros = parseFloat($('#precioKilometros').val()); 
    if ($('#retorno').is(':checked')) { 
     var retorno = 2.0; 
    } else {   
     var retorno = 1.0; 
    } 

    var totalKilometros = (kilometros * precioKilometros * retorno).toFixed(2).toString().replace(".", ","); 
    $('#totalKilometros').html(totalKilometros); 
}); 

http://jsfiddle.net/3k9sz/1/

+3

什么不行? – Zim84 2013-05-10 20:25:14

+3

你可以发布这个HTML吗?一个jsFiddle也会有帮助。 – j08691 2013-05-10 20:25:17

+0

尝试'if($('#retorno')。attr('checked')== true){...' – MISJHA 2013-05-10 20:26:15

回答

0

试试这个更改选择值:

var retorno = $('#retorno').is(':checked') ? 2.0 : 1.0; 

取而代之的是:

if ($('#retorno').is(':checked')) { 
    var retorno = 2.0; 
} else { 
    var retorno = 1.0; 
} 

所以,你的代码应该是这样的:

$('#kilometros').keyup(function() { 
    var kilometros = parseFloat($(this).val().toString().replace(",", ".")); 
    var precioKilometros = parseFloat($('#precioKilometros').val()); 
    var retorno = $('#retorno').is(':checked') ? 2.0 : 1.0; 
    var totalKilometros = (kilometros * precioKilometros * retorno).toFixed(2).toString().replace(".", ","); 
    $('#totalKilometros').html(totalKilometros); 
}); 
+3

在我看来,这会更整洁,但为什么它会解决这个问题? (为什么OP的代码不工作?) – nnnnnn 2013-05-10 20:33:36

+1

谢谢,这很好,但现在我有另一个问题,完成计算后,并显示结果,我尝试检查并取消选中复选框,没有完成计算再次,你有任何想法如何解决它?感谢您的兴趣 – erichmuller 2013-05-10 20:46:31

+0

http://jsfiddle.net/erichmuller/3k9sz/ – erichmuller 2013-05-10 20:48:49