javascript - input change()事件失效
ringa_lee
ringa_lee 2017-04-10 16:58:11
[JavaScript讨论组]

在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");    
    }
});
ringa_lee
ringa_lee

ringa_lee

全部回复(2)
阿神

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

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

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

高洛峰

初步判断你的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');
  }
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号