首页 > input change()事件失效

input change()事件失效

在html里写了input的change()方法是有效的,移到jsp页面就change()事件就失效了,这是怎么回事?

$(".form_datetime").change(function(){
    var ctime=sysDate();
    var time=$(this).val();    
    var att=$(this).attr("id");
    if (time>ctime) {
        alert("所选日期超出查询范围,不能选择大于今天的日期!");
        $("#"+att).val(ctime);    
        $('.datepicker').datepicker('show');
        $(".active").removeAttr("class","active");
        $(".today").attr("class","active day");    
    }
});

初步判断你的BUG应该是因为DOM是动态加载的问题,后来加入的DOM并未绑定事件
两种方法
1、动态页面确保代码运行的时候DOM已经载入完毕
2、代码修改为

$('body').delegate('.form_datetime', 'change', function () {
  var ctime = sysDate(),
    time = $(this).val(),
    att = $(this).attr('id');
  if (time > ctime) {
    alert('所选日期超出查询范围,不能选择大于今天的日期!');
    $('#' + att).val(ctime);
    $('.datepicker').datepicker('show');
    $('.active').removeAttr('class', 'active');
    $('.today').attr('class', 'active day');
  }
});

可能是异步了,就是$(".form_datetime")这个元素并没有绑定上change事件

解决方法,用“on”来绑定事件。

$("body").on("change",".form_datetime",callback)

【热门文章】
【热门文章】