javascript - 我想要一个 Bootstrap 时间选择器从下拉列表中选择开始时间,其中持续时间间隔为 30 分钟

标签 javascript jquery html css twitter-bootstrap

条件:时间也应该在上午 7 点到晚上 9 点之间。 我的要求是根据选定的持续时间加载表格。 我的代码不完整并且无法运行。 我的html代码如下..

<label class="col-md-1 control-label firstcol">Reservation Time : </label> 
	<div class="col-md-2">
		<div class="input-group bootstrap-timepicker timepicker">
			<input data-provide="timepicker" class="form-control" name="txtReserveTimeFrom" id="txtReserveTimeFrom" readonly="readonly" tabindex="2" data-toggle="tooltip" data-container="body" data-placement="bottom" />
		</div>
	</div>
<label class="col-md-1 control-label firstcol "> To </label>
	<div class="input-group bootstrap-timepicker timepicker">
		<div class="col-md-1">
			<input data-provide="timepicker" class="form-control" data-time-format="H:i:s" name="txtReserveTimeTo" id="txtReserveTimeTo" readonly="readonly" tabindex="2" data-toggle="tooltip" data-container="body" data-placement="bottom" />
	</div>
</div>

我的java脚本如下。

$(document).ready(function(){
            $('#txtReserveTimeFrom').timepicker({
                 'minTime': '7:00am','maxTime':     '09:00pm','timeFormat': 'h:i A'
                });
                $('#txtReserveTimeTo').timepicker({
                 'minTime': '7:00am','maxTime': '09:00pm','timeFormat': 'h:i A'
                });
                 
                $( "#txtReserveTimeFrom" ).on( "change", function() {
                    loadResourceTable();
                });
                $( "#txtReserveTimeTo" ).on( "change", function() {
                   loadResourceTable();
                });
                $("#txtReserveDate").val(availableDates[0]);
                $('#txtReserveTimeFrom').timepicker('setTime', '7:00am');
                $('#txtReserveTimeTo').timepicker('setTime', '7:30am');
               loadResourceTable();
            });

// Now I changed the code like this. 


                  $('#txtReserveTimeFrom').timepicker({
                    minuteStep: '30',
                    defaultTime: '7:00 AM',
                    minTime: '7:00 AM',  
                    maxTime: '9:00 PM'
                });
                $('#txtReserveTimeTo').timepicker({
                    minuteStep: '30',
                     defaultTime: '07:30 AM' 
                 minTime: '7:00 AM',
                 maxTime: '09:00 PM'
                
                });

             $(document).ready(function(){
                 
                $( "#txtReserveTimeFrom" ).on( "change", function() {
                  loadResourceTable();
              });
                $( "#txtReserveTimeTo" ).on( "change", function() {
                    loadResourceTable();
                });
                $("#txtReserveDate").val(availableDates[0]);
                $('#txtReserveTimeFrom').timepicker('setTime', '7:00am');
                $('#txtReserveTimeTo').timepicker('setTime', '7:30am');
               loadResourceTable();
            });
           

我已经浏览并尝试了以下链接。

Javascript Dynamic Time Drop Down , bootstrap-timepicker not working , Responsive bootstrap 3 timepicker? , http://www.okler.net/forums/topic/timepicker-not-showing-when-click-on-input/

我是 bootstrap 和 JavaScript 的初学者。有人可以帮我解决这个问题吗?

最佳答案

我找到了上面发布的问题的解决方案。为了设置 Bootstrap 时间选择器的最小和最大时间,我使用了以下函数。

    function validateTimes(element, e){

       var maxMinutes = 21 * 60;
       var minMinutes = 7 * 60;

       var selectedMinutes = ( ((e.time.meridian == 'AM') ? e.time.hours : (e.time.hours+12))* 60 ) + e.time.minutes;

       if(!(e.time.meridian == 'PM' && e.time.hours == 12)){
          if( selectedMinutes<minMinutes){
               $(element).timepicker('setTime', '07:00 AM');
           }
           else if(selectedMinutes>maxMinutes){
               $(element).timepicker('setTime', '09:00 PM');
           }
       }
    }

我在更改时间选择器的时间时调用了该函数,因为我想根据时间变化加载表格。并使用 monthStep 将间隙自定义为 30 分钟。您可以在下面找到该代码。

        $('#txtReserveTimeFrom').timepicker({
            defaultTime: '07:00 AM',
            minuteStep: 30
        }).on('changeTime.timepicker', function(e){
            validateTimes(this, e);
            loadResourceTable();
	});

        $('#txtReserveTimeTo').timepicker({
            defaultTime: '07:30 AM',
            minuteStep: 30
        }).on('changeTime.timepicker', function(e){
            validateTimes(this, e);
            loadResourceTable();
        });

关于javascript - 我想要一个 Bootstrap 时间选择器从下拉列表中选择开始时间,其中持续时间间隔为 30 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633746/

相关文章:

javascript - Bootstrap 3 Datepicker v4 - 无法将日期设置为 0 到 14400000 之间的值

javascript - 单击特定 div 即可选择复选框

javascript - 在任一方向平滑滚动文档

javascript - 如何在新标签页中打开 2 个网站网址

javascript - 如何使用Azure移动服务REST api?

javascript - 使用 jQuery 或 Javascript 从一个表单复制数据并将其粘贴到多个表单

javascript - 如何将 javascript 变量带到下一页?

html - 应用程序的云同步服务

html - 我可以使用 Chrome 中的开发者工具来隐藏网页上的所有图像吗?

javascript - cropper.js 有问题