在我当前的代码中处理jquery日期选择器。我希望datepicker应该显示从1900年 - 直到今天日期用户必须选择从今天起的前10年如果用户选择昨天日期或今天的日期或一个月前的日期eror msg应该填写在错误消息字段
这是我当前的Jquery代码
$(function() {
$( "#datepicker" ).datepicker({
changeMonth: true,
changeYear: true,
yearRange: '-115:+1M'
}).on('change',function(){
alert("check");
});
});
这是小提琴Link
请帮助我
谢谢&问候 马哈德
答案 0 :(得分:3)
您可以在datepicker本身提供的onSelect:fn(){}
中进行所有计算。您可以从您选择的函数的参数名称中获取所选值,我已将其命名为date
。现在,当你从这里得到日期时,你可以将它转换为dateObject来从中提取年份,就像你需要用新的日期对象获得当前年份一样。
$(function() {
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: '-115:+0M',
onSelect: function(date) { // bind the builtin onSelect event
// which gets you the selected date
var selYear = new Date(date).getFullYear(); // get the full year of selected date
var currYear = new Date().getFullYear(); // get the current year
if ((currYear - selYear) > 10) { // check in the if conditon for 10 years
$('#display_error').html('You should choose dates from last 10 years only.');
this.value='';
}
}
});
});
<link href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<p>Date:
<input type="text" id="datepicker">
</p>
<label id="display_error" class="display_error"></label>
答案 1 :(得分:2)
好试试这个小提琴http://jsfiddle.net/bxh5eq1f/
工作
<强>的Javascript 强>
$(function() {
$( "#datepicker" ).datepicker({
changeMonth: true,
changeYear: true,
yearRange: '-115:+1M',
maxDate:new Date(),
}).on('change',function(){
today = new Date();
tenYearBefore = new Date().setYear(new Date().getFullYear() -10);
selected = new Date($(this).val());
if(selected>tenYearBefore) {
$(".display_error").show();
} else {
$(".display_error").hide();
}
});
});
让我知道它是否有效