我正在使用jQuery日期选择器来选择申请人的出生日期,但申请人的年龄必须限制在21到100年之间。
为了使选择相对容易,我打开了月份和年份下拉框,并且在英国我已将其本地化。
<script type="text/javascript">
$(function () {
$(".dp1").datepicker({ changeMonth: true, changeYear: true, dateFormat: 'd MM yy', minDate: '-100y', maxDate: '-21y' });
});
文本框的ASP.NET MVC2 VB.NET代码如下:
<%: Html.TextBox("", If(DirectCast(Model, DateTime) = DateTime.MinValue, String.Empty, ViewData.TemplateInfo.FormattedModelValue), New With {.class = "dp1"})%>
这很好,但年份下拉列表只显示有限的值范围,没有滚动条表示年份列表更长,但滚动条滑块的大小并未给出整个范围的任何视觉线索:
如果您单击最高值然后关闭下拉列表,则下次打开它时会显示更多值:
这是非显而易见的行为,我偶然偶然发现了它。是否有任何方法可以始终显示滚动条并且滑块大小与范围成反比?如果没有,推荐使用其他几个月的选择方法(实际上是99年就可以)?
我正在使用的记录:
由于
克里斯平
答案 0 :(得分:26)
尝试同时设置yearRange选项(这将设置年份下拉框中的年份范围)。您可以将其设置为 yearRange:“ - 100:-21”。请注意,单独设置yearRange不会影响允许用户选择的实际日期(您仍需要设置minDate和maxDate)。
答案 1 :(得分:6)
以下内容将设定从1970年到当年的年份范围,并处理滚动问题。
.datepicker({yearRange: "1970:+nn"});
答案 2 :(得分:0)
在BDP中选择年份时向上滚动:BasicDatePicker,并使用此代码,因为再次设置相同的位置
<script>
function SetScrollPostion() {
var scrollPos = $(window).scrollTop();
setTimeout(function () {
window.scrollTo(0, scrollPos);
$(".bdpYearSelectorImg").click(function () {
SetScrollPostion();
});
}, 1)
}
$(".bdpButton").click(function () {
$("#yearSelector").click(function () {
$(".bdpYearSelectorImg").click(function () {
SetScrollPostion();
});
});
});
</script>