終了時刻を今から 30 分に更新するために正常に動作する次のコードがあります。ただし、ユーザーが終了時間を開始時間よりも短く変更したかどうかを確認してから、開始時間を同じ時間に更新するか、入力を無効にします。これは、ユーザーが開始時刻より前に終了時刻を設定できないという考え方です。
私のHTML:
<li data-role="fieldcontain">
<label for="starttime">Start Time</label>
<input name="starttime" type="date" data-role="datebox" id="starttime" readonly data-options='{"mode": "timebox", "timeFormat": 12}' />
<label for="endtime">End Time</label>
<input name="endtime" type="date" data-role="datebox" id="endtime" readonly data-options='{"mode": "timebox", "timeFormat": 12}' />
</li>
私のJquery:
$('#starttime').live('change', function() {
var currentTime=new Date();
var starttime=sealtime.timeto24HoursFormat($('#starttime').val());
if(starttime.split(":").length>1){
currentTime.setHours(starttime.split(":")[0]);
currentTime.setMinutes(starttime.split(":")[1]);
currentTime.setMinutes(currentTime.getMinutes()+30);
}
var hours=currentTime.getHours().toString();
if(hours<10)
hours='0'+hours;
var minutes=currentTime.getMinutes().toString();
if(minutes<10)
minutes='0'+minutes;
$('#endtime').val(sealtime.timeto12HoursFormat(hours+':'+minutes+":00"));
});
$('#endtime').live('change', function() {
var currentTime=new Date();
var endtime=sealtime.timeto24HoursFormat($('#endtime').val());
var starttime=sealtime.timeto24HoursFormat($('#starttime').val());
if(endtime.split(":").length>1){
currentTime.setHours(endtime.split(":")[0]);
currentTime.setMinutes(endtime.split(":")[1]);
currentTime.setMinutes(currentTime.getMinutes()-0);
}
if (endtime.split(":").length < starttime.split(":").length){
var hours=currentTime.getHours().toString();
if(hours<10)
hours='0'+hours;
var minutes=currentTime.getMinutes().toString();
if(minutes<10)
minutes='0'+minutes;
$('#starttime').val(sealtime.timeto12HoursFormat(hours+':'+minutes+":00"));
}
});