$('input').change(function(){
alert($(this).val());
});
$('input').val(1);
这行不通。我需要使用 JavaScript 捕获更改输入:-s
谢谢。
$('input').change(function(){
alert($(this).val());
});
$('input').val(1);
这行不通。我需要使用 JavaScript 捕获更改输入:-s
谢谢。
对元素的编程更改<input>
不会导致事件。只有用户交互可以。
但是,您可以这样做:
$('input').val(1).trigger('change');
您必须将这些功能放在“Ready”功能中。看小提琴:http: //jsfiddle.net/SfjJQ/1/
$(function() {
$('input').change(function() {
alert($(this).val());
});
$('input').val(1);
$('input').trigger('change');
});
请记住,您的:
$('input').val(1);
将输入初始化为值为 1。
当然你也可以这样做:
$(function() {
$('input')
.change(function() {
alert($(this).val());
})
.val(1)
.trigger('change');
});
正如其他人所提到的, .val() 不会触发任何事件;但是,您可以向 jQuery 添加一个包装函数,该函数将更改值并在需要时触发事件:
$( 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);
} );