我的代码:
var availableDates = ["23-1-2013","24-1-2013","25-1-2013"];
function available(date) {
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
if ($.inArray(dmy, availableDates) !== -1) {
return [true, "","Available"];
} else {
return [false,"","unAvailable"];
}
}
$("a.pickadate").click(function () {
$("#datepicker").datepicker({
beforeShowDay: available,
altField: '#datepicked',
dateFormat: "dd-mm-yy"
});
});
$("#datepicker a.ui-state-default").click(function () {
$("#datepicker").datepicker("hide");
});
它打开很好,填充字段很好,并显示正确的日期也很好;就在我选择的东西时,它会保持打开状态。
我的HTML是:
<input type="text" id="datepicked" name="datepicked" size="8" style="float: left;">
<a href="javascript:void();" class="pickadate">
<img src="media/images/icon-calendar.gif" style="float: left; margin-right: 10px;">
</a>
<!-- Datepicker -->
<div id="datepicker" style="position: absolute; left: 670px; border: 0px; z-index: 5000; top: 247px;"></div>
为什么不关闭?是否与样式标签中的CSS有关?我不知道我应该把它放在哪里。如果我拿出它,它就不会关闭,而且定位很糟糕。
答案 0 :(得分:1)
当你将.datepicker
放在不属于某种类型的输入的东西上时,jQuery UI似乎很讨厌它。请改为.datekpicker()
上的#datepicked
,并单独设置用户界面的样式。
答案 1 :(得分:1)
使用此脚本
$(document).click(function (e) {
var ele = $(e.target);
if (!ele.hasClass("hasDatepicker") && !ele.hasClass("ui-datepicker") && !ele.hasClass("ui-icon") && !$(ele).parent().parents(".ui-datepicker").length)
$(".hasDatepicker").datepicker("hide");
});
答案 2 :(得分:0)
我知道这是一个旧线程,但也许有人会觉得这很有用:
我在网站上有许多不同的占位符,颜色不同,所以使用精确的颜色可能会覆盖样式。
这是有效的解决方案:
::-webkit-input-placeholder { color:inherit; opacity: 1 !important;}