2013-07-15 62 views
-2

我是JavaScript/jQuery的初學者,我正在使用jQuery Mobile設計我的第一個應用程序。如何在使用JS的窗體中執行相互依賴的計算?

它是用於光譜計算的一個基本的計算器。

我有3個領域:您在第一和第二個字段中輸入你的價值觀和我計算出現在第三場的數字。我使用keyup函數進行實時計算。

我想添加的功能是在執行計算後出現在第三個字段中,您可以修改第三個字段以查看第二個字段更改(它將執行反向計算,第一個字段將保留相同)

什麼是JavaScript來做到這一點的最好方法是什麼?在我的例子中,我執行了我的逆向計算,但不知道如何顯示它。

HTML

<div data-role="content" class="page11" > 
    <div data-role="fieldcontain"> 
     <label for="l0">Excitation</label> 
     <input type="text" name="l0" id="l0" data-clear-btn="true" value=""> 
     <label for="l1">Signal</label> 
     <input type="text" name="l1" id="l1" data-clear-btn="true" value=""> 
     <label for="l2">Shift</label> 
     <input type="text" name="l2" id="l2" data-clear-btn="true" value="">  
    </div> 

的Javascript

$('input').keyup(function() { 

var l0 = parseFloat($('#l0').val()) || 0; 
var l1 = parseFloat($('#l1').val()) || 0; 
var dw1 = (l0 * l1)/2 || 0; 
var dw = dw1.toFixed(2); 
document.getElementById("l2").value = dw; 

/* Inverse calculation */ 

var dw2 = parseFloat($('#l3').val()) || 0; 
var l1_22 = 2 * dw2/l0; 
var l1_2 = l1_22.toFixed(2); 


}); 

謝謝

+2

你可以發佈一些代碼? – stackErr

+1

你到目前爲止嘗試過什麼?你會怎麼做?你能告訴我們一些代碼嗎? – Zim84

+1

@Ankit什麼是無用的編輯 –

回答

1

http://jsfiddle.net/6RrVG/

我掀起這件事:

HTML

<p>F: <input type="text" name="f" value="50.0" /></p> 
<p>=</p> 
<p>m: <input type="text" name="m" /></p> 
<p>&times;</p> 
<p>a: <input type="text" name="a" /></p> 

的jQuery:

var $f = $('input[name=f]'); 
var $m = $('input[name=m]'); 
var $a = $('input[name=a]'); 
$m.on('keyup',function() { 
    var f = +$f.val(); 
    var m = +$m.val(); 
    $a.val(f/m).toFixed(1); 
}); 
$a.on('keyup',function() { 
    var f = +$f.val(); 
    var a = +$a.val(); 
    $m.val(f/a).toFixed(1); 
}); 

連接KEYUP處理程序的輸入,並做具體到每一個計算。

+0

我修改了我的代碼並使用了你的代碼,它非常完美!謝謝。 – Nadacambia

+0

小問題:我添加了另一個字段來使用a的結果執行另一個計算,但我無法使其顯示。這似乎是選擇一個.. ..的價值問題?另外.toFixed不能用於固定小數? – Nadacambia

+0

以固定的問題是我的錯,對不起。這是一個更新:http://jsfiddle.net/6RrVG/1/ –