DateTimePicker 如何从构造函数外部触发 onChangeTime()
DateTimePicker how to trigger onChangeTime() from outside the constructor
我创建了一个 DateTimePicker,目前正在使用 "onChangeDateTime" 作为使用 ajax 更新页面的方式。但我不是前端人员,我无法理解到底发生了什么,而且我几乎没有使用 Jquery 的经验。我正在努力学习更多,但与此同时,如果有人提供建议,我将不胜感激。
我想做的是在页面上有一个 link/button,我可以在其中调用一些方法来更改日期选择器中的时间并让它触发 onChangeDateTime 函数。
我认为改变时间就像做 $("#DateTimePicker").somefunction() 一样简单,但我似乎无法弄清楚如何改变时间或如何触发 onChangeDateTime( ).
我正在创建一个日程查看器,我想让用户单击一个按钮来及时向前和向后循环,而不必 select 在日期时间选择器上一遍又一遍地输入特定时间。
我从 http://xdsoft.net/jqplugins/datetimepicker/
获得了我的日期选择器版本
编辑:这是我到目前为止所写的内容。
<body>
<input id="datetimepicker" type="text" value="2015/04/08 17:49">
<a id="myLink" title="Click to do something"
href="#" onclick="backEpisodes();">Backwards</a>
<a id="myLink" title="Click to do something"
href="#" onclick="forwardEpisodes();">Forwards</a>
<script>
jQuery('#datetimepicker').datetimepicker({
formatTime:'g:ia',
format: 'm/d/Y g:i a',
inline:true,
maxDate:'<?php echo date('Y/m/d', strtotime("+3 week")); ?>',
onSelectTime:function(current_time,$input){
updateEp($input.val());
}
});
</script>
</body>
您可以通过使用它的 setOptions()
函数并指定 "value" 选项以编程方式设置 DateTimePicker 的值,如下所示:
$('datetimepicker').data('xdsoft_datetimepicker').setOptions({
value: '1944/06/06 6:06' // Of course this needs to match the correct format
});
注意:jsfiddle 包含一个将字符串解析为 JavaScript Date
对象的函数。这可以使用正则表达式来实现,但我走了一条捷径,利用了 moment.js 库。
备注:
- 如果您希望该代码在用户更改日期时也执行,您可能需要使用 "onChangeDateTime" 选项,而不是 "onSelectTime" 选项。
- 您的初始值格式(“2015/04/08 17:49”)与您为日期时间选择器 ('m/d/Y g:i a') 提供的格式不匹配。你会想要更正它。
- 仅当您指定 "minTime" and/or "maxTime" 选项时才需要 "formatTime" 选项。同样,仅当您指定 "minDate" and/or "maxDate" 选项时才需要 "formatDate" 选项。因此,您不需要指定 "formatTime" 选项。您可以指定 "formatDate" 选项,因为您确实指定了 "maxDate",但它默认为 "Y/m/d".
id
值应该是唯一的,因此您不应使用 "myLink" 作为两个 <a>
元素的值。
我创建了一个 DateTimePicker,目前正在使用 "onChangeDateTime" 作为使用 ajax 更新页面的方式。但我不是前端人员,我无法理解到底发生了什么,而且我几乎没有使用 Jquery 的经验。我正在努力学习更多,但与此同时,如果有人提供建议,我将不胜感激。
我想做的是在页面上有一个 link/button,我可以在其中调用一些方法来更改日期选择器中的时间并让它触发 onChangeDateTime 函数。
我认为改变时间就像做 $("#DateTimePicker").somefunction() 一样简单,但我似乎无法弄清楚如何改变时间或如何触发 onChangeDateTime( ).
我正在创建一个日程查看器,我想让用户单击一个按钮来及时向前和向后循环,而不必 select 在日期时间选择器上一遍又一遍地输入特定时间。
我从 http://xdsoft.net/jqplugins/datetimepicker/
获得了我的日期选择器版本编辑:这是我到目前为止所写的内容。
<body>
<input id="datetimepicker" type="text" value="2015/04/08 17:49">
<a id="myLink" title="Click to do something"
href="#" onclick="backEpisodes();">Backwards</a>
<a id="myLink" title="Click to do something"
href="#" onclick="forwardEpisodes();">Forwards</a>
<script>
jQuery('#datetimepicker').datetimepicker({
formatTime:'g:ia',
format: 'm/d/Y g:i a',
inline:true,
maxDate:'<?php echo date('Y/m/d', strtotime("+3 week")); ?>',
onSelectTime:function(current_time,$input){
updateEp($input.val());
}
});
</script>
</body>
您可以通过使用它的 setOptions()
函数并指定 "value" 选项以编程方式设置 DateTimePicker 的值,如下所示:
$('datetimepicker').data('xdsoft_datetimepicker').setOptions({
value: '1944/06/06 6:06' // Of course this needs to match the correct format
});
注意:jsfiddle 包含一个将字符串解析为 JavaScript Date
对象的函数。这可以使用正则表达式来实现,但我走了一条捷径,利用了 moment.js 库。
备注:
- 如果您希望该代码在用户更改日期时也执行,您可能需要使用 "onChangeDateTime" 选项,而不是 "onSelectTime" 选项。
- 您的初始值格式(“2015/04/08 17:49”)与您为日期时间选择器 ('m/d/Y g:i a') 提供的格式不匹配。你会想要更正它。
- 仅当您指定 "minTime" and/or "maxTime" 选项时才需要 "formatTime" 选项。同样,仅当您指定 "minDate" and/or "maxDate" 选项时才需要 "formatDate" 选项。因此,您不需要指定 "formatTime" 选项。您可以指定 "formatDate" 选项,因为您确实指定了 "maxDate",但它默认为 "Y/m/d".
id
值应该是唯一的,因此您不应使用 "myLink" 作为两个<a>
元素的值。