jquery动态创建的元素不会触发onchange

时间:2014-08-29 18:05:24

标签: javascript jquery html forms

我一直在研究jquery中的.on()函数来更新动态表单的DOM并触发新创建的下拉框的更改事件。

我在这里联系了一个小提琴:
http://jsfiddle.net/6y18mho8/10/

我相信导致我的问题的jquery就在这里:

$('#orderDetail').ready(function () {
    $("[id^=PN_]").on('change',function(event) {
        var PN = $(event.target).val();
        var ID = event.target.id;
        alert('Successfully triggered by onChange from "'+ID+'"');  
    });
});

代码将在初始行上触发,但不会在新创建的代码上触发。同样,从我读过的所有内容中,我需要通过.on()方法重新加载/重新定义DOM以包含我的新元素。我是在正确的轨道上,如果是的话,我错过了什么?

对此的任何指导都将非常感激。

1 个答案:

答案 0 :(得分:0)

尝试下面的内容!

$(".orderDetail").on('change', '[id^=PN_]', function(event) {
    var PN = $(event.target).val();
    var ID = event.target.id;
    alert('Successfully triggered by onChange from "'+ID+'"');
});
  • 如果你的jQuery 1.7版可以使用delegate()
  • 对于1.7岁以上使用.on,请使用$('parent_selector').on('event', 'event_selector', function(){});