2013-03-18 63 views
0

我试图用jQuery 1.7.2手动触发我的表单的change()函数,但它不起作用。这是我的代码:在jQuery中手动更改表单

$(document).ready(function(){ 

    console.log('going to change form'); 

    $('form[name="newBom"] input').trigger('change'); 

    $('form[name="newBom"] input').change(function() { 
      console.log('form changed'); 
    }); 
}); 

我在做什么错?

回答

2

即使在您的输入绑定了change处理程序之前,您仍然无法获得预期的功能,因为您正在触发change。您可以通过触发change事件后纠正这种结合的change处理程序:

// bind the handler 
$('form[name="newBom"] input').change(function() { 
    console.log('form changed'); 
}); 

// now, trigger the change event 
$('form[name="newBom"] input').trigger('change'); 
+0

... _and有在OP code_ 2个语法错误。 – undefined 2013-03-18 08:44:54

+0

@undefined - 是的,你是对的。修正了上面我的答案中的一个。第二个需要修复的脚本工作。 – techfoobar 2013-03-18 08:45:47

1
$(document).ready(function(){ 

    console.log('going to change form'); 

    //Attach event handler first 
    $('form[name="newBom"] input').change(function() { 
      console.log('form changed'); 
    }); // missing); 

    //Trigger event 
    $('form[name="newBom"] input').trigger('change'); 


}); //missing); 

**工作实例:** http://jsfiddle.net/RG5gn/

+0

注意,';;'在更改绑定语句后也缺少。 – techfoobar 2013-03-18 08:46:29

+0

@techfoobar谢谢,我错过了那一个。 – 2013-03-18 08:47:11