【发布时间】:2014-02-21 11:51:59
【问题描述】:
我正在努力创建不可点击的嵌入式/内联日期选择器 - 它应该只显示日期,表现为只读。
我正在做的是用模型中选定的日期填充日历,然后我尝试让它不可点击,这样用户就不会觉得他可以编辑任何东西。
我正在使用 eternicode-bootstrap-datepicker - 使其成为多日期。
到目前为止,我得到了这个:
<link rel="stylesheet" href="<c:url value="/resources/js/lib/eternicode-bootstrap-datepicker/css/datepicker3.css" />" />
<script src="<c:url value="/resources/js/lib/eternicode-bootstrap-datepicker/js/bootstrap-datepicker.js"/>"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#datepicker-inline").datepicker({
multidate : true,
todayHighlight : true,
});
var dates = [];
var i = 0;
<c:forEach items="${course.selectedDates}" var="selectedDate">
console.log("${selectedDate}");
dates[i++] = new Date("${selectedDate}");
</c:forEach>
$("#datepicker-inline").datepicker('setDates', dates);
// something to make it readonly
$(".day").click(function(event) {
console.log("preventing");
event.preventDefault();
});
});
</script>
<div class="col-xs-8">
<h4>Dates</h4>
<div id="datepicker-inline"></div>
</div>
[抱歉,如果格式错误]
如您所见,我试图阻止日历中 .day 的默认点击操作。控制台显示“预防”,但仍会检查所选日期。
您知道如何使其禁用/不活动/只读吗?
所有关于使<input>只读的只读主题,但仍然能够从日期选择器中选择日期。
【问题讨论】:
-
在您的
$('.day').click活动中,您是否尝试在event.preventDefault();之后添加event.stopPropagation();?不确定它是否与跨浏览器兼容或与div一起使用,但值得一试。我刚刚在 Chrome 中尝试过(虽然使用了input),但它阻止了日期被点击。 -
那个成功了!谢谢! :) 如果您将此添加为答案,我会将其标记为解决方案。
标签: jquery twitter-bootstrap datepicker readonly