phpcmsV9中表单向导在js调用里日期控件在IE下报Calendar未定义的解决办法

本文介绍了一个在phpcmsV9中使用表单向导时遇到的问题:在IE浏览器下调用日期和时间类型的控件时出现“Calendar”未定义的错误。问题在于calendar.js文件未完成加载前就开始执行Calendar.setup()方法。文章提供了具体的解决方案,通过jQuery确保Calendar.setup()方法在DOM完全加载后再执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在phpcmsV9里用表单向导弄个的提交表单,但用了日期和时间类型时,用
 
<script language='javascript' src='{APP_PATH}index.php?m=formguide&c=index&a=show&formid=11&action=js&siteid=1'></script>
 
调用时在IE下报  “Calendar”未定义  的错误,致使日期控件无法使用
 
原因是由在IE下,calendar.js文件加载没有阻塞Calendar.setup()方法的运行,Calendar.setup()在calendar.js未加载的情况,就开始执行了,所以就报出“Calendar”未定义  的错误
 
解决办法:
找到phpcms/libs/class/form.class.php文件
 
在174到182行
 

Calendar.setup({
weekNumbers: '.$showweek.',
   inputField : "'.$id.'",
   trigger    : "'.$id.'",
   dateFormat: "'.$format.'",
   showTime: '.$showsTime.',
   minuteStep: 1,
   onSelect   : function() {this.hide();}
});

改成:

$(function(){
Calendar.setup({
weekNumbers: '.$showweek.',
   inputField : "'.$id.'",
   trigger    : "'.$id.'",
   dateFormat: "'.$format.'",
   showTime: '.$showsTime.',
   minuteStep: 1,
   onSelect   : function() {this.hide();}
});
});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值