WdatePicker 无效日期或者超出范围

  1. 云栖社区>
  2. 博客>
  3. 正文

WdatePicker 无效日期或者超出范围

amos.落叶 2017-09-27 16:52:10 浏览618
展开阅读全文
/*
 * My97 DatePicker 4.8 Beta4
 * License: http://www.my97.net/dp/license.asp
 */


    近期开发项目时用到了DatePicker 这个日历控件,首先不说这个控件的好坏,只谈遇到的问题和解决方案


其实遇到的问题主要是报错为:无效日期或者超出范围(翻译之后的)




<input type="text" name="rili" id="txtDate" onclick="datePicker()" value="Sep 28, 2017">


<script type="text/javascript">
   function datePicker(){
       WdatePicker(
            {
                startDate: '%y-%M-%d',
                readOnly: true,
                isShowClear: false,
                doubleCalendar: true,
                minDate: '%y-%M-{%d}',
                lang: 'en-US',
                dateFmt:"MMM dd,yyyy",
            });
}
</script>


然后程序运行,点击input正常弹出日历,然后点击除日历界面的其它位置,立马报错
然后点击取消弹窗,点击日历里面的日期,重复操作一切OK了!!!
神马情况??


然后就是陷入苦不堪言的调试阶段了,说多了都是泪
再当我即将奔溃的时候,发现一个一个很有趣的地方,那就是导致报错的原因是因为,日期被默认为32了,一个月最多31天。。。。
好吧,终于有点眉目了,往上推发现在做日期正则的时候,格式匹配错误,值为null (因为没有买源码,所以都是在压缩代码下进行调试的)
将正则单独取出来 ("^ (\d\d?), (\d{4}).*$"),然后带入value值发现真的是没有匹配成功
进过尝试,发现改变正则里面的空格会匹配成功,好吧貌似看到春天了
然后我单独把正则和value值的空格ascii码打印出来发现 一个是32,一个是160   (感觉逆天了)


最简单的解决方案就是将Value里面的空格替换为160的空格了


问题:看代码发现正则里面的空格也是从Valuel里面获取的,为什么会变成160呢? 希望谁了解的能告知一下,万分感谢!

网友评论

登录后评论
0/500
评论
amos.落叶
+ 关注