2013-10-29 45 views
0

我有這個計算器 http://jsfiddle.net/DPqXE/的Javascript計算器不能正常工作

HTML

<p>With numbers &rarr; 
<input id="mli" name="mli" style="width:50px;" type="text" />&nbsp;ml.</p> 
<p> 
With numbers &rarr; <input id="sprying" name="sprying" style="width:50px;" type="text" />&nbsp;time/s</p> 
<p> 
How often&rarr; <select id="week" name="week"><option value="4.3">1</option><option value="8.6">2</option><option value="12.9">3</option><option value="17.2">4</option><option value="21.5">5</option><option value="24.8">6</option><option value="30.1">7</option></select> 
<p> 
Total: <span id="total">&bull;&bull;</span> months</p> 

JS

$(document).ready(function() { 
$('#sprying').keyup(function(ev){ 
    var total = Math.round((
    ($('#mli').val() * 14.7)/($('#sprying').val() * $("#week option:selected").val()))); 
    $('#total').html(total); 
}); 
}); 

但我有一個問題: 當我到輸入一些數字輸入字段 總計算,但是當我從選擇字段中選擇沒有任何haged。

然後,如果我編輯前兩個字段結果計算得當。

非常感謝

+0

你只有一個文本框綁定到一個事件 –

回答

2

爲什麼會這樣呢,你只聽密碼。

bindkeyupchange,是這樣的:

$(document).ready(function() { 
    $('#sprying').keyup(updateTotals); 
    $('#week').change(updateTotals); 
    function updateTotals(){ 
     var total = Math.round((
     ($('#mli').val() * 14.7)/($('#sprying').val() * $("#week option:selected").val()))); 
     $('#total').html(total); 
    } 
}); 

演示:http://jsfiddle.net/DPqXE/1/

+0

非常感謝它像一個魅力:) –

1

你只分配.keyup(),也ASIGN到.change()

它添加到您的$(document).ready(function() {..}

$('#week').change(function(ev){ 
    //.... 
}); 
+0

爲什麼downvotes? :(需要解釋。 –

+0

我沒有-1你,但可能是由於複製了代碼味道(DRY)的代碼。 – Prisoner