Jquery datepicker 添加点击事件到 prev next 按钮
Jquery datepicker add click event to prev next button
我有这个功能,可以为给定的元素 ID 设置日期选择器,我正在尝试为上一个和下一个按钮添加点击功能。但似乎没有任何效果。我已经在网上搜索为这些按钮添加点击事件,但它们都提供了一个 ID。
我做错了什么?
function setDatepicker(element,curdate,identifier){
//identifier is the element.id
var minDateMaxDate = getCalendarsYearRange(1);
var min = new Date(minDateMaxDate[0] * 1000);
var max = new Date(minDateMaxDate[1] * 1000);
$(element).datepicker({
id: identifier,
firstDay: 1,
showOtherMonths: false,
selectOtherMonths: false,
changeYear: true,
changeMonth: true,
yearRange: getCalendarsYearRange(0),
monthNamesShort:monthNamesShort,
dayNamesShort:dayNamesShort,
minDate: min,
maxDate: max,
onClose: function (dateText, inst){
saveFieldsChanges(element,dateText,inst);
getFieldsFromDialog();
}
});
$(element).datepicker( "option", "dateFormat", "dd-mm-yy" );
$(element).datepicker( "option", "defaultDate", curdate );
$("#"+identifier+" .ui-datepicker-div .ui-datepicker-header .ui-datepicker-prev").live('click', function(){
console.log("prev");
});
$("#"+identifier+" .ui-datepicker-div .ui-datepicker-header .ui-datepicker-next").live('click', function(){
console.log("next");
});
}
更新
Html 我设置日期选择器的地方,这是加载的 xsl 模板的一部分,输入字段是日期选择器。
<div class="ferias-form-div">
<div class="labelfieldcontainer">
<div class="formlabels">Data início</div>
<div class="formfields">
<input type="text" id="datainicioferias" onblur="saveFieldsChanges(this)" onkeyup="saveFieldsChanges(this)" name="datainicioferias" value="" class="textbox"/>
<div class="errodialog" id="datainiciodialogferias"></div>
</div>
</div>
<div class="labelfieldcontainer">
<div class="formlabels">Data fim</div>
<div class="formfields">
<input type="text" id="datafinalferias" onblur="saveFieldsChanges(this)" onkeyup="saveFieldsChanges(this)" name="datafinalferias" value="" class="textbox"/>
<div class="errodialog" id="datafimdialogferias"></div>
</div>
</div>
...
这是我设置日期选择器的方式,例如:
setDatepicker(inputelement,curdate,"datafinalferias");
更新 2 - 使用 answear
在 Alexander 的帮助下,我将此选项添加到日历
onChangeMonthYear: function (year, month, inst ) {
var limites;
var cal_date_string = month+'/'+year;
limites = getCalendarsYearRange(2); //my calendar's navigation limits
var end_date_string = limites[1]; //my calendar's navigation limits
var start_date_string = limites[0]; //my calendar's navigation limits
if(end_date_string == cal_date_string){
setTimeout( function(){ $(".ui-datepicker-next").attr( "onclick", 'mensagemLimite(1);' )},100);
}
if(start_date_string == cal_date_string){
setTimeout( function(){ $(".ui-datepicker-prev").attr( "onclick", 'mensagemLimite(0);' )},100);
}
}
这样,当 prev/next 按钮变为非活动状态时,它将获得我想要的 onclick 功能。
试试这个
$(document).on('click', '.ui-datepicker-next', function () {
console.log('next');
})
$(document).on('click', '.ui-datepicker-prev', function () {
console.log('prev');
})
我有这个功能,可以为给定的元素 ID 设置日期选择器,我正在尝试为上一个和下一个按钮添加点击功能。但似乎没有任何效果。我已经在网上搜索为这些按钮添加点击事件,但它们都提供了一个 ID。
我做错了什么?
function setDatepicker(element,curdate,identifier){
//identifier is the element.id
var minDateMaxDate = getCalendarsYearRange(1);
var min = new Date(minDateMaxDate[0] * 1000);
var max = new Date(minDateMaxDate[1] * 1000);
$(element).datepicker({
id: identifier,
firstDay: 1,
showOtherMonths: false,
selectOtherMonths: false,
changeYear: true,
changeMonth: true,
yearRange: getCalendarsYearRange(0),
monthNamesShort:monthNamesShort,
dayNamesShort:dayNamesShort,
minDate: min,
maxDate: max,
onClose: function (dateText, inst){
saveFieldsChanges(element,dateText,inst);
getFieldsFromDialog();
}
});
$(element).datepicker( "option", "dateFormat", "dd-mm-yy" );
$(element).datepicker( "option", "defaultDate", curdate );
$("#"+identifier+" .ui-datepicker-div .ui-datepicker-header .ui-datepicker-prev").live('click', function(){
console.log("prev");
});
$("#"+identifier+" .ui-datepicker-div .ui-datepicker-header .ui-datepicker-next").live('click', function(){
console.log("next");
});
}
更新
Html 我设置日期选择器的地方,这是加载的 xsl 模板的一部分,输入字段是日期选择器。
<div class="ferias-form-div">
<div class="labelfieldcontainer">
<div class="formlabels">Data início</div>
<div class="formfields">
<input type="text" id="datainicioferias" onblur="saveFieldsChanges(this)" onkeyup="saveFieldsChanges(this)" name="datainicioferias" value="" class="textbox"/>
<div class="errodialog" id="datainiciodialogferias"></div>
</div>
</div>
<div class="labelfieldcontainer">
<div class="formlabels">Data fim</div>
<div class="formfields">
<input type="text" id="datafinalferias" onblur="saveFieldsChanges(this)" onkeyup="saveFieldsChanges(this)" name="datafinalferias" value="" class="textbox"/>
<div class="errodialog" id="datafimdialogferias"></div>
</div>
</div>
...
这是我设置日期选择器的方式,例如:
setDatepicker(inputelement,curdate,"datafinalferias");
更新 2 - 使用 answear
在 Alexander 的帮助下,我将此选项添加到日历
onChangeMonthYear: function (year, month, inst ) {
var limites;
var cal_date_string = month+'/'+year;
limites = getCalendarsYearRange(2); //my calendar's navigation limits
var end_date_string = limites[1]; //my calendar's navigation limits
var start_date_string = limites[0]; //my calendar's navigation limits
if(end_date_string == cal_date_string){
setTimeout( function(){ $(".ui-datepicker-next").attr( "onclick", 'mensagemLimite(1);' )},100);
}
if(start_date_string == cal_date_string){
setTimeout( function(){ $(".ui-datepicker-prev").attr( "onclick", 'mensagemLimite(0);' )},100);
}
}
这样,当 prev/next 按钮变为非活动状态时,它将获得我想要的 onclick 功能。
试试这个
$(document).on('click', '.ui-datepicker-next', function () {
console.log('next');
})
$(document).on('click', '.ui-datepicker-prev', function () {
console.log('prev');
})