我有两个输入的type=“文本”日期-角色=“日期框”
一是开始时间。另一个是结束时间。
我想做的是,当用户选择开始时间时,我将结束时间日期框的minHour选项更改为他们选择的小时。
这有可能吗?如果是这样的话,是怎么做的?
谢谢
发布于 2013-11-27 07:27:42
据我所见,minHour似乎默认时间选择器弹出到正确的时间,但它允许您选择更早的时间。如果您选择的时间比minHour早,则datebox将显示较早的小时,但当您调用datebox(‘getTheDate’)时,它将返回minHour。所以我想出了一个解决办法,可以帮你解决这个问题。
这是一个演示
每个日期框都有onclose的回调:
<input name="Date1" id="Date1" type="date" data-role="datebox"
data-options='{"mode": "timebox", "closeCallback": "Date1Close();"}' />
...
<input name="Date2" id="Date2" type="date" data-role="datebox"
data-options='{"mode": "timebox", "closeCallback": "Date2Close();"}' />
启动时间上的回调获取所选时间的时间,然后将最终时间框的minHour设置为该小时+ 1。然后“解决办法”是结束时间的回调,该回调将框的时间设置为框的“getTheDate”,以便更正显示。
function Date1Close(){
var startdate = $('#Date1').datebox('getTheDate');
var minH = startdate.getHours() + 1;
if (minH > 23) minH = 23;
$('#Date2').datebox({"minHour": minH});
}
function Date2Close(){
var enddate = $('#Date2').datebox('getTheDate');
$('#Date2').datebox('setTheDate', enddate);
$('#Date2').trigger('datebox', {'method':'doset'});
}
在第二个回调中,您也可以将结束时间与startime进行比较,如果end小于start,则将第二个datebox设置为starttime。
您可能需要与Datebox开发人员联系,看看是否有minHour特性的错误.
https://stackoverflow.com/questions/20229314
复制相似问题