My97DatePicker日期控件自定义脚本日期在ThinkPHP5下面报错

最近一个项目又牵扯到日期限定的操作,在thinkPHP5下集成My97DatePicker过程中报了一个未定义变量:D的错误。一般性载入没问题,只有在自定义脚本日期上报错。很显然是冲突造成的。

问题场景复现。

使用My97DatePicker自定义脚本日期,做一个时间段的选择,起始时间为今日起,终止时间为未来某一天。两个日期选择框,对应两条规则,第一起始日期不能为过去的日期。第二起始日期不能大于终止日期。两条规则一限定就构成了一个选择范围。原本心想很简单,翻开My97DatePicker的demo,一顿拷贝,然后上述两条规则一定义,原本以为就这样完事了,如图:

页面一刷新,傻眼了,竟然报了一个未定义变量:D 的错误。

问题原因及查找。

第一反应未定义变量这是PHP的错误啊,博主写程序从来不会写单字母的变量的,所以问题肯定是刚刚的时间控件的问题。不过My97DatePicker是个纯js程序,哪来的PHP报错。于是就去查了下ErrorException(runtime目录下的temp目录中)。发现My97DatePicker中关于$dp.$D没有被正确编译,而是把D解析成了一个变量,看到这样的编译结果,顿时就明白了原因。如图:

很显然,因为ThinkPHP5的模版语法采用的是单花括号,而不是更常见的双花括号。TP5将$dp.$D解析成了变量,从而造成了这部分内容没有变My97DatePicker的js接管。

解决办法。

解决办法也很简单,如果仔细看过TP5的手册的话,在模版章节中关于变量输出中有这样一句话:{和$之间不能有任何空格,否则标签无效。

关于$dp.$D在My97DatePicker的demo中也给出了解释。

有了上面两个解释就好办了,只要使{$dp.$D}这个标签无效,就能达到目的,那么只需将#f{$dp.$D}中的{和$之前敲一个空格就妥了。最终效果如图:

再次刷新页面,就可以看到My97DatePicker空间被正常加载了,无任何错误。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏守望轩

Visual Studio 2008 每日提示(二十三)

#221、在对象浏览器中按对象和成员排序 原文链接:You can sort objects and members in the Object Browse...

3846
来自专栏程序员的知识天地

新鲜出炉的8月前端面试题

题目的答案提供了一个思考的方向,答案不一定正确全面,有错误的地方欢迎大家请在评论中指出,共同进步。

1032
来自专栏程序员宝库

10 种最常见的 Javascript 错误

英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript...

3808
来自专栏CaiRui

Python Flask-web表单

Flask-WTF扩展可以把处理web表单的过程变成一种愉悦的体验。 ? 一、跨站请求伪造保护 默认情况下,Flask-WTF能够保护所有表单免受跨站请求伪造的...

3739
来自专栏SeanCheney的专栏

ViEmu的vi-vim编辑器教程

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

3898
来自专栏程序员的碎碎念

PHPExcel 表格导入数据代码解析(二)

前面大概讲了phpexcel用表格导入数据到数据库中的教程,今天会详细剖析函数代码,话不多说,先上代码: public function upload...

3526
来自专栏程序你好

1000个项目中前10名的JavaScript错误介绍

661
来自专栏前端布道

全方位理解JavaScript的Event Loop

下面我们一个一个的来了解 Event Loop 相关的知识点,最后再一步一步分析出本段代码最后的输出顺序。

1073
来自专栏小樱的经验随笔

IPython使用学习笔记

学习《利用python进行数据分析》第三章 IPython:一种交互式计算和开发环境的笔记,共享给大家,同时为自己作为备忘用。 ? 安装ipython用pip即...

4055
来自专栏前端知识分享

深入理解Vue的生命周期

  谈到Vue的生命周期,相信许多人并不陌生。但大部分人和我一样,只是听过而已,具体用在哪,怎么用,却不知道。我在学习vue一个多礼拜后,感觉现在还停留在初级阶...

1333

扫码关注云+社区

领取腾讯云代金券