将更改和键控相结合

Combining change and keyup

本文关键字:相结合      更新时间:2023-09-26

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

有没有办法将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() 方法,则可以提供一个空格分隔的字符串,其中包含要绑定到的事件名称,如下所示:

$('#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的值

这是工作代码:

 $(document).on("keyup change", "#input, #select", function(){
 var x = $('#select').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);})

https://jsfiddle.net/itsrikin/gaL237qg/