Javascript 如何使用jquery捕获输入中的更改事件?

Javascript 如何使用jquery捕获输入中的更改事件?,javascript,jquery,onchange,Javascript,Jquery,Onchange,这不管用。我需要用JavaScript捕获更改输入:-s 谢谢。对元素的编程更改不会导致事件。只有用户交互才能做到这一点 但是,您可以这样做: $('input').change(function(){ alert($(this).val()); }); $('input').val(1); 您必须将这些函数放入“Ready”函数中。看小提琴: 请记住,您的: $(function() { $('input').change(function() { alert

这不管用。我需要用JavaScript捕获更改输入:-s


谢谢。

元素的编程更改不会导致事件。只有用户交互才能做到这一点

但是,您可以这样做:

$('input').change(function(){
    alert($(this).val());
});
$('input').val(1);

您必须将这些函数放入“Ready”函数中。看小提琴:

请记住,您的:

$(function() {
    $('input').change(function() {
        alert($(this).val());
    });
    $('input').val(1);
    $('input').trigger('change');
});​
将输入初始化为值1

当然,您也可以这样做:

$('input').val(1);

正如其他人提到的,.val()不会触发任何事件;但是,您可以向jQuery添加一个包装函数,该函数将更改值并在需要时触发事件:

$(function() {
    $('input')
        .change(function() {
            alert($(this).val());
        })
        .val(1)
        .trigger('change');
});​

他问的是如何捕获事件,而不是如何抛出它:)@mattytommo问题是,当您以编程方式更改这样一个元素的值时,不会创建任何事件。“更改”事件处理程序已经存在,可以捕捉事件。啊,我明白了,我没意识到他试图自己扔事件,我的错+1对于您:)对
.val()
的调用不会触发任何事件。我对问题的解释是,User先生希望调用
.val(1)
来触发“更改”处理程序。我可能错了;这个问题是稀疏而神秘的。是的,我明白你的意思,我添加了另一行来触发页面加载时的更改事件。你的问题不清楚。假设您在适当的时间调用它(即,在页面上所有
元素之后的
标记中,或者在“ready”或“load”处理程序中),那么您得到的“change”处理程序就可以了。我将您的问题解释为调用
.val()
不会触发“更改”处理程序。
$(function() {
    $('input')
        .change(function() {
            alert($(this).val());
        })
        .val(1)
        .trigger('change');
});​
$( function () {

    //-- new jQuery function
    $.fn.changeVal = function () {
        $.fn.val.apply( this, arguments );
        $( this ).trigger( 'change' );
    };

    //-- your updated code
    $('input').change(function(){
        alert($(this).val());
    });
    $('input').changeVal(1);

} );​