Javascript jquery同时进行乘法和除法运算

Javascript jquery同时进行乘法和除法运算,javascript,jquery,html,Javascript,Jquery,Html,这里是我的文本字段 <tr> <td>Price:</td> <td><input type="text" name="price" id="form_textfield" class="price" autocomplete="off" /></td> </tr> <tr> <

这里是我的文本字段

        <tr>
            <td>Price:</td>
            <td><input type="text" name="price" id="form_textfield" class="price" autocomplete="off" /></td>
        </tr>
        <tr>
            <td>Liters:</td>
            <td><input type="text" name="liters" id="form_textfield" class="liters" autocomplete="off" /></td>
        </tr>
        <tr>
            <td>Amount:</td>
            <td><input type="text" name="jqueryamount"  id="form_textfield" class="jqueryamount" autocomplete="off" /></td>
        </tr>
刚刚为DIVIDE函数添加了一个新名称。。。愚蠢的我谢谢你们的帮助

这是我的javascript

// JavaScript Document
$(document).ready(function(){
$('.price').keyup(calculate);
$('.liters').keyup(calculate);
});
function calculate(e)
{
    $('.jqueryamount').val($('.price').val() * $('.liters').val());
}

// JavaScript Document
$(document).ready(function(){
$('.jqueryamount').keyup(calculate);
$('.price').keyup(calculate);
});
function calculate(e)
{
    $('.liters').val($('.jqueryamount').val() / $('.price').val());
}
// JavaScript Document
$(document).ready(function(){
    $('.form_textfield').keyup(calculate);
});

function calculate()
{
    $('#jqueryamount').val($('#price').val() * $('#liters').val());
    $('#liters').val($('#jqueryamount').val() / $('#price').val());
}
我的问题是,当添加除法函数时,乘法部分将不再工作,我无法再在它给我一个错误的文本字段中键入。

在从输入获取值后使用
parseFloat()
函数,该函数将字符串转换为数字

当你把价值,价格和数量公升将显示如下

$('.price').keyup(calculateLiters, calculateAmount);
$('.jqueryamount').keyup(calculateLiters);
$('.liters').keyup(calculateAmount);


function calculateLiters(e) {
    price = parseFloat($('.price').val());
    amount = parseFloat($('.jqueryamount').val());
    if(!isNaN(price) && !isNaN(amount)){
        $('.liters').val(amount / price);
    }
}

function calculateAmount(e) {
    price = parseFloat($('.price').val());
    liters = parseFloat($('.liters').val());

    if(!isNaN(price) && !isNaN(liters)){
        $('.jqueryamount').val(price  * liters);
    }
}

为了提高代码的效率,我交换了一些类名和id

HTML

<tr>
    <td>Price:</td>
    <td><input type="text" name="price" id="price" class="form_textfield" autocomplete="off" /></td>
</tr>
<tr>
    <td>Liters:</td>
    <td><input type="text" name="liters" id="liters" class="form_textfield" autocomplete="off" /></td>
</tr>
<tr>
    <td>Amount:</td>
    <td><input type="text" name="jqueryamount"  id="jqueryamount" class="form_textfield" autocomplete="off" /></td>
</tr>

这里是一个工作演示

保持函数名称不同calculate和calculate1,也可以在从字段接收值时使用parseFloat,如此parseFloat($('.jQueryMount').val())@Neo我在一个文本字段上遇到了一个错误,但乘法似乎很好,只是除法我遇到了问题。即使使用parsefloat,这也是因为您正在调用$('.price').keyup(calculate);在这个特定的时间,金额字段中可能有值,也可能没有值……因此,一个“否”除以一个“空白”正在给NaN…我希望yu能得到它。尝试在开始时默认给所有字段一个0值,然后检查。我认为parseFloat在这里是一个更好的选择。我不能在我想要分区的字段中键入我只想能够在文本字段之间切换,如果他们想输入数量和价格,升将回答,如果他们填写价格和升的数额将回答。你没有考虑的数额时,用户改变升。
// JavaScript Document
$(document).ready(function(){
    $('.form_textfield').keyup(calculate);
});

function calculate()
{
    $('#jqueryamount').val($('#price').val() * $('#liters').val());
    $('#liters').val($('#jqueryamount').val() / $('#price').val());
}