Jquery 从JavaScript触发更改事件

Jquery 从JavaScript触发更改事件,jquery,Jquery,我有: 但我的问题是,这两个更改事件都不会被触发。请确保使用的是就绪块 ​ 如果您试图以编程方式简单地触发: $(function(){ $('input').on('change','[name=X]',function() { $('body').append('on change fired!'); }); $('input[name=X]').change(function() { $('body').append('change fir

我有:


但我的问题是,这两个更改事件都不会被触发。

请确保使用的是就绪块

​ 如果您试图以编程方式简单地触发:

$(function(){
   $('input').on('change','[name=X]',function() {
        $('body').append('on change fired!');
   });
   $('input[name=X]').change(function() {
       $('body').append('change fired!');
   });
   $(input[name='X']).val('test'); 
});

确保您使用的是就绪块

​ 如果您试图以编程方式简单地触发:

$(function(){
   $('input').on('change','[name=X]',function() {
        $('body').append('on change fired!');
   });
   $('input[name=X]').change(function() {
       $('body').append('change fired!');
   });
   $(input[name='X']).val('test'); 
});

以编程方式更改输入元素的值不会触发任何事件。或者,您可以在
.val
之后调用
.change
,如下所示

$('input[name=X]').change(); // trigger change event
编辑:还修复了输入选择器周围缺少的引号


演示:

以编程方式更改输入元素的值不会触发任何事件。或者,您可以在
.val
之后调用
.change
,如下所示

$('input[name=X]').change(); // trigger change event
编辑:还修复了输入选择器周围缺少的引号


演示:

选择器周围缺少引号,另外添加触发器如何

$('input[name=X]').val('test').change();

您的选择器周围缺少引号,再加上添加触发器如何

$('input[name=X]').val('test').change();


您是否已将代码放在
$(文档)中。准备好了吗?
?它位于html的末尾,就在/body的上方。您的代码中有语法错误,您错过了
输入
选择器的引号。@undefined这就是我的想法!您是否已将代码放在
$(文档)中。准备好了吗?
?它位于html的末尾,就在/body的上方。您的代码中有语法错误,您错过了
输入
选择器的引号。@undefined这就是我的想法!哦,我原以为它是自动的。不,你是在为更改创建一个处理程序,而不是触发更改事件。但我原以为更改值会自动触发更改事件。@Phillip以编程方式更改输入元素的值不会触发任何事件。哦,我原以为它是自动的。不,您正在为更改创建处理程序,而不是触发更改事件。但我认为更改值会自动触发更改事件。@Phillip以编程方式更改输入元素的值不会触发任何事件。@Gabe它如何区分选择器和变量?我以为所有jquery选择器都需要引号!我是说属性值选择器不需要引号
“input[name=X]”
“input[name='X']”
@Gabe如何区分选择器和变量?我以为所有jquery选择器都需要引号!我是说属性值选择器不需要引号
“input[name=X]”
“input[name='X']”
您的小提琴也帮助我解决了其他语法问题。谢谢你的小提琴还帮我解决了另一个语法问题。谢谢