仅当从日期选择器的下拉菜单中选择年份时才激活月份下拉菜单
Activate Month dropdown only when Year is selected from dropdown in datepicker
请让我知道如何实现这个场景。
我正在使用 jquery 日期选择器。现在我的要求是用户应该只能 select 年优先于月和日。这是用于捕获出生日期。请帮助我。
$(".datePicker", $context).each( function() {
var baseOptions = {
inline: true,
dateFormat : "dd-mm-yy",
changeYear: true,
changeMonth: true,
showOn: "button",
buttonImage: "img/calendar.gif",
buttonImageOnly: true,
showMonthAfterYear: true,
buttonText: "Select date"
};
var attr = $(this).attr("min");
if (attr != undefined) {
baseOptions.minDate = attr;
baseOptions.yearRange = "+0:+5";
}
attr = $(this).attr("max");
if (attr != undefined) {
baseOptions.maxDate = attr;
baseOptions.yearRange = "-120:+0";
}
attr = $(this).attr("setBirthdate");
if(attr!=undefined){
var date = new Date(attr);
date.setFullYear(date.getFullYear()-12)
baseOptions.defaultDate = date;
}
options = {
onSelect: function(dateText, inst){
$(this).val(dateText).trigger('change');
$(inst).hide();
}
};
$(this).datepicker($.extend(baseOptions, options));
$(this).on('click', function (e) { e.preventDefault(); }).datepicker($.extend(baseOptions, options));
//}
}
正如我在评论中所说,我认为没有必要这样做。但是,如果你真的需要它以这种方式工作,我会使用类似 combobox 的东西并添加一点 css/jQuery 来获得这种效果
$(function(){
$('#date').combodate();
$('.year').change(function(){
$(this).parent('.combodate').find('.month').show();
});
$('.month').change(function(){
$(this).parent('.combodate').find('.day').show();
});
});
.day{
display:none;
}
.month{
display:none;
}
<link href="http://vitalets.github.io/combodate/prettify/prettify-bootstrap.css" rel="stylesheet"/>
<link href="http://vitalets.github.io/combodate/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://vitalets.github.io/combodate/combodate.js"></script>
<script src="http://vitalets.github.io/combodate/momentjs/moment.min.2.5.0.js"></script>
<input type="text" id="date" data-format="DD-MM-YYYY" data-template="D MMM YYYY" name="date" value="">
请让我知道如何实现这个场景。
我正在使用 jquery 日期选择器。现在我的要求是用户应该只能 select 年优先于月和日。这是用于捕获出生日期。请帮助我。
$(".datePicker", $context).each( function() {
var baseOptions = {
inline: true,
dateFormat : "dd-mm-yy",
changeYear: true,
changeMonth: true,
showOn: "button",
buttonImage: "img/calendar.gif",
buttonImageOnly: true,
showMonthAfterYear: true,
buttonText: "Select date"
};
var attr = $(this).attr("min");
if (attr != undefined) {
baseOptions.minDate = attr;
baseOptions.yearRange = "+0:+5";
}
attr = $(this).attr("max");
if (attr != undefined) {
baseOptions.maxDate = attr;
baseOptions.yearRange = "-120:+0";
}
attr = $(this).attr("setBirthdate");
if(attr!=undefined){
var date = new Date(attr);
date.setFullYear(date.getFullYear()-12)
baseOptions.defaultDate = date;
}
options = {
onSelect: function(dateText, inst){
$(this).val(dateText).trigger('change');
$(inst).hide();
}
};
$(this).datepicker($.extend(baseOptions, options));
$(this).on('click', function (e) { e.preventDefault(); }).datepicker($.extend(baseOptions, options));
//}
}
正如我在评论中所说,我认为没有必要这样做。但是,如果你真的需要它以这种方式工作,我会使用类似 combobox 的东西并添加一点 css/jQuery 来获得这种效果
$(function(){
$('#date').combodate();
$('.year').change(function(){
$(this).parent('.combodate').find('.month').show();
});
$('.month').change(function(){
$(this).parent('.combodate').find('.day').show();
});
});
.day{
display:none;
}
.month{
display:none;
}
<link href="http://vitalets.github.io/combodate/prettify/prettify-bootstrap.css" rel="stylesheet"/>
<link href="http://vitalets.github.io/combodate/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://vitalets.github.io/combodate/combodate.js"></script>
<script src="http://vitalets.github.io/combodate/momentjs/moment.min.2.5.0.js"></script>
<input type="text" id="date" data-format="DD-MM-YYYY" data-template="D MMM YYYY" name="date" value="">