Javascript 手动触发日期选择器onselect事件
谁能告诉我如何触发datepicker的onselect事件?我的代码运行良好(根据datepickers altfield的值从数据库中提取一些数据),但当页面加载时,它不会在当前日期触发onselect事件,也不会显示任何内容;所以我想手动完成Javascript 手动触发日期选择器onselect事件,javascript,jquery,jquery-ui,datepicker,Javascript,Jquery,Jquery Ui,Datepicker,谁能告诉我如何触发datepicker的onselect事件?我的代码运行良好(根据datepickers altfield的值从数据库中提取一些数据),但当页面加载时,它不会在当前日期触发onselect事件,也不会显示任何内容;所以我想手动完成 <script> $( "#datepicker" ).datepicker ( { altField: '#sheet', onSelect: function load
<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>
$(“#日期选择器”)。日期选择器
(
{
altField:“#表”,
onSelect:函数加载(){
$(文档).ready(函数(){
$.ajax({
键入:“POST”,
url:'test.php',
数据:{sheetid:$('#sheet').val()},
成功:功能(数据)
{
$(“#content”).html(数据);
}
});
});
},
第一天:1});
您可以在设置日期后立即触发日期选择器上的单击
代码:
演示:我从datepicker.js文件的源代码中获取了这个。请注意,这个
应该替换为您的输入元素(而不是jquery对象,即实际的dom元素)。在我的情况下,我是从一个按键事件中调用这个
// 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]);
}
最佳解决方案
var inst = $.datepicker._getInst($("#date")[0]);
$.datepicker._get(inst, 'onSelect').apply(inst.input[0], [$("#date").datepicker('getDate'), inst]);
这是我发现的唯一一个同样适用于datetimepicker的解决方案
var$calendar=$('#from');
$.datepicker.\u getInst($calendar[0]).settings.onSelect()//或onClose或任何事件
尝试在正文
onload
函数或$(document).ready()
使用$('.\datepicker')。单击()你能解释一下为什么这是“最好的解决方案”,或者至少它是如何工作的吗?我不认为使用jQuery DePePokes模块的内部“隐藏”函数是一个很好的解决方案,更不用说“最佳”了。我收到一个错误:未捕获此日期选择器缺少的实例数据
。有人知道为什么会这样吗?@ManojShrestha你能提供一个样本吗?@IrvinDominin是否可以使用onSelect中的属性,比如altField:“#Date”,
var inst = $.datepicker._getInst($("#date")[0]);
$.datepicker._get(inst, 'onSelect').apply(inst.input[0], [$("#date").datepicker('getDate'), inst]);