Javascript 如何使用JS在表单中执行相互依赖的计算?

Javascript 如何使用JS在表单中执行相互依赖的计算?,javascript,html,jquery-mobile,Javascript,Html,Jquery Mobile,我是JavaScript/jQuery的初学者,我正在使用jQuery Mobile设计我的第一个应用程序 它是用于光谱计算的基本计算器 我有3个字段:你在第一个和第二个字段中输入你的值,我计算一个出现在第三个字段中的数字。我使用了keyup功能来执行实时计算 我想添加的功能是在执行计算后出现在第三个字段中,您可以修改第三个字段以查看第二个字段的更改(它将执行反向计算。第一个字段将保持不变) 在JavaScript中实现这一点的最佳方法是什么?在我的示例中,我执行了反向计算,但不知道如何显示它

我是JavaScript/jQuery的初学者,我正在使用jQuery Mobile设计我的第一个应用程序

它是用于光谱计算的基本计算器

我有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>
谢谢

我突然想到:

html


将keyup处理程序附加到输入,并对每个输入执行特定的计算。

您可以发布一些代码吗?到目前为止您尝试了什么?你会怎么做?你能给我们看一些代码吗?@Ankit真没用edit@AnkitAggarwal:名称不是代码。请不要这样做。@minitech这是一个元讨论,但可以像我在这里做的那样向用户发送消息吗:我修改了我的代码并使用了你的,它工作得很好!谢谢。小问题:我添加了另一个字段以使用a的结果执行另一个计算,但我无法使其显示。这似乎是一个选择…值的问题。。?还有,toFixed不能修复小数?toFixed问题是我的错,对不起。这里有一个更新:我不知道你对另一个领域是什么意思。用JSFIDLE更新您的问题。
$('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);


});
<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>
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);
});