每次用户更改我页面上输入字段内的数字时,如何使用 JQuery 进行拦截?

How can I use JQuery to intercept each time that the user change a digit inside an input field on my page?

我是 JavaScript 和 JQuery 的新手,我遇到以下情况,这里是 JSFiddle:https://jsfiddle.net/AndreaNobili/eemrb8xo/3/

所以,如您所见,在 HTML 我有这个输入字段:

<input id="variazioneAnticipo" class="rightAlligned form-control" style="width: 60%" type="number" step="0.01" min="0" value="3" />

然后我有这个 JQuery 代码:

$(document).ready(function() {
    $("#variazioneAnticipo").change(function() {
        var variazioneAnticipo = $("#variazioneAnticipo").val();
        alert("CHANGED VALUE, NEW VALUE: " + variazioneAnticipo);

    });
});

因此,正如您在前面的 JSFiddle 中看到的那样,当用户更改输入字段内的值时,在 change() 函数内声明的匿名回调函数和警报是执行。

好的,这有效。

因此用户可以通过两种方式更改值:

  1. 使用向上和向下箭头:当我单击箭头时,警报弹出窗口会正确显示。

  2. 更改值,在输入标签中插入一个新数字(写入)。

在第二种情况下,匿名回调函数似乎只有在用户完成新号码的插入并点击输入字段外时才会被调用。我认为这是 JQuery change() 函数的标准行为。

我需要每次用户在输入字段中插入一个新数字时调用此函数,而不是仅在它已插入整个数字并单击输入字段外时调用。

我可以获得这种行为吗?我能做什么?

$(document).ready(function() {
    $("#variazioneAnticipo").bind('change keyup', function() {
        var variazioneAnticipo = $("#variazioneAnticipo").val();
        alert("CHANGED VALUE, NEW VALUE: " + variazioneAnticipo);

    });
});

使用 Jquery 按键事件,您将获得所需的结果。

$(文档).ready(函数() {

$("#variazioneAnticipo").keyup(function() {

    var variazioneAnticipo = $("#variazioneAnticipo").val();
    alert("ANTICIPO VARIATO: " + variazioneAnticipo);

});

});

keyup 事件引起了很多噪音。我建议使用 input and propertychange 事件。