我可以定义一个函数来处理在 2 个输入标签上定义的 "change keyup" 事件吗?这是个好主意吗?

Can I define a single function that handle the "change keyup" event defined on 2 input tags? is it a good idea?

在 HTML 代码中,我有这两个输入字段:

<div class="col-md-7">
    <input id="variazioneUlterioreSaldoInput" class="rightAlligned form-control" type="number" value="" min="0" step="0.01" style="width: 60%">
</div>

<div class="col-md-12">
    <label for="anticipo">Anticipo:</label>
    <input id="anticipoModaleUlterioreSaldo" class="rightAlligned form-control" type="number" value="" min="0" step="0.01" style="width: 25%">
</div>

这些字段是可编辑的,当用户更改其中一个时,我必须对这两个值求和。我有一个如下所示的 jQuery 函数,当用户更改第一个输入中的值时执行该函数:

$("#variazioneUlterioreSaldoInput").bind('change keyup', function() {
    console.log("VALUE CHANGED !!!");
    // DO SOMETHING
}

我的疑问是实现我之前的要求是更好地实现 2 个不同的 jQuery 函数,每个函数定义在特定输入的 change keyup 事件上,或者我可以为 [=13 定义一个独特的函数=] 我的两个输入标签上的事件?

您可以将相同的事件处理程序分配给两个元素,方法是用逗号分隔它们的选择器:

$('#variazioneUlterioreSaldoInput, #anticipoModaleUlterioreSaldo').on('change keyup', function() {
    console.log("VALUE CHANGED !!!");
    // calculate the sum of values here...
});

使用此模式是一个值得遵循的好习惯,因为它符合 DRY principles

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>

    $(document).ready(function () {

        $("#variazioneUlterioreSaldoInput, #anticipoModaleUlterioreSaldo").bind('change keyup', function () {
            console.log("VALUE CHANGED !!!");
            // DO SOMETHING
        });
    });
</script>
</head>

<body>

    <div class="col-md-7">
    <input id="variazioneUlterioreSaldoInput" class="rightAlligned form-control" type="number" value="" min="0" step="0.01" style="width: 60%">
</div>

<div class="col-md-12">
    <label for="anticipo">Anticipo:</label>
    <input id="anticipoModaleUlterioreSaldo" class="rightAlligned form-control" type="number" value="" min="0" step="0.01" style="width: 25%">
</div>
</body>

</html>