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