我使用两个日期选择器/html文本框来获取日期,并根据另一个日期选择器设置最小/最大。问题是,当我为日期选择器运行on changeDate函数时,我得到一个导致堆栈溢出的正则表达式错误:
Uncaught SyntaxError:无效正则表达式:/^date/: Stack overflow at bootstrap-datepicker.js:1328
<script type="text/javascript">
$(document).ready(function() {
$(".date").datepicker({ autoclose: true })
.on("changeDate", function() {
var start = $("#startDate").datepicker("getDate");
var end = $("#endDate").datepicker("getDate");
$("#startDate").datepicker('setEndDate', end);
$("#endDate").datepicker('setStartDate', start);
});
});
</script>
有人遇到过这个问题吗?下面是错误所在的代码:
for (var key in data)是行
function opts_from_el(el, prefix){
// Derive options from element data-attrs
var data = $(el).data(),
out = {}, inkey,
replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');
prefix = new RegExp('^' + prefix.toLowerCase());
function re_lower(_,a){
return a.toLowerCase();
}
for (var key in data)
if (prefix.test(key)){
inkey = key.replace(replace, re_lower);
out[inkey] = data[key];
}
return out;
}
使用on change而不是on changeDate解决了这个问题。