有谁能告诉我你如何触发datepicker的onselect事件?我的代码运行良好(根据datepickers altfield的值从数据库中提取一些数据),但是当页面加载时,它不会触发当前日期的onselect事件,并且它不会显示任何内容;所以我想手动完成。
<script>
$( "#datepicker" ).datepicker
(
{
altField: '#sheet',
onSelect: function load() {
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'test.php',
data: {sheetid: $('#sheet').val()},
success: function(data)
{
$("#content").html(data);
}
});
});
},
firstDay: 1});
</script>
答案 0 :(得分:18)
您可以在日期设置之后立即在日期选择器上触发click
。
代码:
$(document).ready(function () {
$("#datepicker").datepicker({
altField: '#sheet',
onSelect: function(date) {
alert(date);
},
firstDay: 1
});
$('#datepicker').datepicker("setDate", new Date(2013,09,22) );
$('.ui-datepicker-current-day').click(); // rapresent the current selected day
});
答案 1 :(得分:2)
最佳解决方案
var inst = $.datepicker._getInst($("#date")[0]);
$.datepicker._get(inst, 'onSelect').apply(inst.input[0], [$("#date").datepicker('getDate'), inst]);
答案 2 :(得分:1)
我从datepicker.js文件的源代码中获取了这个。请注意,this
应替换为您的input元素(而不是jquery对象,实际的dom元素)。在我的情况下,我从keydown事件中调用它。
// this is SUCH a hack. We need to call onselect to call any
// specific validation on this input. I stole this from the datepicker source code.
var inst = $.datepicker._getInst(this),
onSelect = $.datepicker._get(inst, "onSelect");
if (onSelect) {
dateStr = $.datepicker._formatDate(inst);
onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
}
答案 3 :(得分:1)
这是我发现的唯一适用于datetimepicker
的解决方案
var $calendar =$('#from');
$.datepicker._getInst($calendar[0]).settings.onSelect()//or onClose or any event
&#13;