javascript - 计算值的变化

标签 javascript jquery html css onchange

在我的 html 文件中,我有 2 个选择框和 4 个输入文本框。

从第一个选择中,您可以选择要使用的数字(文本框)数量。 从第二个选择中,您可以选择数学运算 (+,-,*,/) 根据用户在第一次选择时的选择,会出现一些输入框。 现在您向这些输入添加数字,并根据您选择的内容和输入中的内容,结果应显示在特定的 div 中。

然后,当我更改任何内容时,结果应该会更新。

这是我目前所拥有的:

首先选择:

 <select id="quantity" name="qua" onchange="selectQuantity(this.value)">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
        </select>      

首先选择js:

 function selectQuantity(selectedValue){
    var e = document.getElementById("quantity");
    var quantity = e.options[e.selectedIndex].value;

 if ( quantity==='1') {
    $('#nt').fadeIn();
} else if ( quantity==='2') {
    $('#nt').fadeIn();
    $('#nt1').fadeIn();
} else if (  quantity==='3') {
    $('#nt').fadeIn();
    $('#nt1').fadeIn();
    $('#nt2').fadeIn();
} else { 
   $('#nt').fadeIn();
   $('#nt1').fadeIn();
   $('#nt2').fadeIn();
   $('#nt3').fadeIn()
 }
 }

第二次选择html:

 <select id="operation" name="ope" onchange="selectOperation(this.value)">
                <option value="+">+</option>
                <option value="-">-</option>
                <option value="*">*</option>
                <option value="/">/</option>
        </select>   

第二次选择js:

 function selectOperation(selectedValue){
    var e = document.getElementById("operation");
    var operation = e.options[e.selectedIndex].value;
 } 

输入文本示例:

 <input type="text" id="nt"  onchange="checkField(this.value)">

js:

 function checkField(val)
 {

 }

结果div:

 <div id="result"></div>

那么,我应该在哪里以及如何进行计算才能获得动态更新的结果?一个单独的功能? 我所有的 js 函数都在单独的 js 文件中。 谢谢。

-FIDDLE example

最佳答案

这里有一个建议:

function calculator() {
    var val1 = parseInt($('#quantity').val());
    var op = $('#operation').val();

    for (var i = 0; i < val1; i++) {
        var incr = i ? i : '';
        $('#nt' + incr).fadeIn();
    }
    var sum = 0;
    function values2() {
        var internalSum = 0;
        $('[id^="nt"').each(function () {
            internalSum += parseInt(this.value == '' ? 0 : this.value);
        });
        return internalSum;
    }

    switch (op) {
        case '+':
            sum = val1 + values2();
            break;
        case '-':
            sum = val1 - values2();
            break;
        case '*':
            sum = val1 * values2();
            break;
        case '/':
            sum = val1 / values2();
            break;
        default:
            console.log('Missing parameters');
    }
    $('#result').html(sum);
}
$('select, input').on('change', calculator);

Demo

关于javascript - 计算值的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21202312/

相关文章:

javascript - 掷骰子直到达到数字

java - 使用 webjars 进行 r.js 压缩

javascript - 将变量从服务器 (Node.JS) 传递到客户端

jquery - SPFx 不能使用 JQuery?

javascript - jquery可重用组件?

javascript - 加载页面时自动将默认的 bootstrap-daterangepicker 过滤器应用到 DataTable

html - 使用 Fabric.js 时 IE 中的问题

javascript - Trello 应用程序无法在 Angularjs (routeProvider) 中实例化

Javascript 确认弹出窗口

javascript - 更改div react 的onClick路线