2013-05-10 107 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