jQuery:仅当输入值更改时才触发mouseup事件

时间:2020-05-10 15:07:48

标签: jquery events bind keyup mouseup

当输入值发生更改时,我使用以下几行触发事件: 但是,当我只单击输入字段时(在此不做任何更改),这也会触发。

有没有一种方法可以防止它仅在输入字段中的单击时触发,还是仅在值更改时才触发?我正在寻找一种适用于输入和粘贴的解决方案。

我的jQuery:

$('input[type="text"]').bind('keyup mouseup', function() {
    var val = $(this).val();
    var isnum = /\d/.test(val);

    if(isnum == true) {
        // do some stuff;
    } else {
        // do some other stuff;
    }
});

在此先感谢您的帮助, 汤姆

1 个答案:

答案 0 :(得分:1)

您可以简单地将inputpaste事件绑定到类似这样的元素上:

$('input[type="text"]').on('input paste', function() {
    var val = $(this).val();
    var isnum = /\d/.test(val);

    if(isnum == true) {
        // do some stuff;
    } else {
        // do some other stuff;
    }
});

请注意,每次元素值更改时,都会触发input事件。这与change事件不同,该事件仅在提交值时才触发,例如通过按Enter键,从选项列表中选择一个值等等。

此外,您可以使用.on()方法而不是.bind(),因为.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。 从jQuery 1.7起.on()方法提供了附加事件处理程序所需的所有功能。