javascript - 结合更改和 keyup

标签 javascript jquery events onchange

我有一个计算产品成本的表格。这取决于他们输入的输入值和他们选择的选择。

有没有办法将 changekeyup 事件合并到一个更清晰的片段中?

我的代码如下:

https://jsfiddle.net/qrv57qtu/

$('#input').keyup(function(){
    var x = $('#input').val();
    var y = $('#select').val(); 
    if (y == '5') {
        var z = 5;
    }
    else if (y == '10') {
        var z = 10;
    }
    var z = x * y;
    $('#total').html(z);
});

$('#select').change(function(){
    var x = $(this).val();
    var y = $('#input').val();
    if (x == '5') {
        var z = 5;
    }
    else if (x == '10') {
        var z = 10;
    }
    var a = y * z;
    $('#total').html(a);
});

谢谢。

最佳答案

您可以使用单个逗号分隔的选择器来获取这两个元素。然后,如果您使用 on() 方法,您可以提供一个以空格分隔的字符串,其中包含您要绑定(bind)的事件名称,如下所示:

$('#input, #select').on('keyup change', function() {
    var x = $('#input').val();
    var y = $('#select').val();

    if (y == '5') {
        var z = 5;
    }
    else if (y == '10') {
        var z = 10;
    }

    var z = x * y;
    $('#total').html(z);
});

另请注意,您的逻辑中的 if 条件完全是多余的,因为您无论如何都会在最后覆盖 z 的值

关于javascript - 结合更改和 keyup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38333060/

相关文章:

python - wxPython wx.CallAfter - 如何让它立即执行?

wpf - 其他控件下面的控件的单击事件

javascript - jQuery - 在表中的 <tr> 元素上单击事件并获取 <td> 元素值

Javascript简单添加类删除类

javascript - 用普通 CSS 覆盖 jQuery 中应用的 CSS(没有 !important)

javascript - 如何在每次点击 jquery 中的链接时添加/追加和切换项目到 div?

javascript - gulp:自动为请求添加版本号以防止浏览器缓存

javascript - 位置 :fixed(css) behaving differently in different browser

php - jQuery/ajax 上传图片并保存到文件夹

ruby - Ruby 中的事件处理