如果输入字段被代码更改则触发的事件监听器

时间:2014-12-24 17:56:36

标签: javascript jquery

我需要一个事件处理程序,当输入字段的值发生更改时会触发该事件处理程序。 无论"用户"是否更改了值或者通过"代码"。 如果用户更改了值,则此侦听器可以正常工作,但如果代码更改了则不会。

$('#myInput').on('change paste input', function() {  })

我的具体问题是javascript日历插件更改了值 我的输入字段。 "输入"因为更改是由代码进行的,所以不会触发事件。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用.trigger('change')在没有用户互动的情况下手动触发事件。这意味着您可能必须修改插件的源代码,或者与插件作者讨论如何包含此(相当基本的)功能。

理想情况下,对DOM进行更改或操作文档中的值的插件应该触发事件(无论是jQuery识别的常见事件处理程序,还是自定义事件),以便其他用户可以" latch&# 34;为实现可扩展性目的而言。

这是一个概念验证小提琴:http://jsfiddle.net/teddyrised/p999rscy/

$(function() {
    $('input').on('change paste input', function() {
        $('body').append('<p>Input value changed.</p>');
    });

    $('button').click(function() {
        $('input').val('New value from button').trigger('change');
    });
});

答案 1 :(得分:-1)

由于插件正在动态更改输入元素的html,您可以尝试使用以下代码:

$(document).on("change paste input","#myInput", function() {//begin event

    //todo: fill with code

  });//end event