/*
* 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呢? 希望谁了解的能告知一下,万分感谢!
* 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呢? 希望谁了解的能告知一下,万分感谢!