【问题标题】:Setting max time in jQuery Timepicker在 jQuery Timepicker 中设置最大时间
【发布时间】:2014-07-30 08:58:52
【问题描述】:

下面是我的时间选择器的当前 JQuery。 如果时间是从#from 字段中选取的,它会将#to 的最大时间设置为选定时间。

如果我从 #from 选择凌晨 1 点,那么 #to 可以接机的最长时间是凌晨 1 点。

var osmaxtime = '20';
$('#from').timepicker({ 'minTime': '9','maxTime': '8','scrollDefaultNow': true,'step': 60 });
$('#from').on('changeTime', function() {
    var sFrom=$(this).val();
    $('#to').timepicker({ 'minTime': '9','maxTime':sFrom,'scrollDefaultNow': true,'step': 60 });
});
$('#to').timepicker({ 'minTime': '9','maxTime': osmaxtime,'scrollDefaultNow': true,'step': 60 });

现在我想根据#from字段增加#to字段的最大时间。

例如,如果我凌晨 1 点从 #from 接机,#to 的最长时间是凌晨 4 点(+4 小时)

$('#from').on('changeTime', function() {
        var sFrom=$(this).val();
        var sFromPuls=sFrom+4;// Here is the problem because the value of sFrom is in String or something else.
        $('#to').timepicker({ 'minTime': '9','maxTime':sFrom,'scrollDefaultNow': true,'step': 60 });
    });

【问题讨论】:

标签: javascript jquery timepicker jquery-ui-timepicker


【解决方案1】:

用 Number 包围 var,让 jQuery 将其识别为数字并加 4

$('#from').on('changeTime', function() {
  var sFrom=$(this).val();
  var sFromPuls=Number(sFrom)+4; // Surround with Number()
  $('#to').timepicker({ 'minTime': '9',
  'maxTime':sFromPuls, //write correct var name 
  'scrollDefaultNow': true,
  'step': 60 });
});

【讨论】:

    【解决方案2】:

    您可以参考onSelect documentation 并在您的时间选择器上使用它

    $('#example').datetimepicker({
        onSelect: function(){
                  //Here you can add 4 hours to the start time
            }
    });
    

    【讨论】:

    • 感谢您的快速回复,但这是我已经拥有的。我相信这与我的代码中的以下行相同。 $('#from').on('changeTime', function() { });
    【解决方案3】:

    以下代码解决了我的问题 -

    $('#from').timepicker({ 'minTime': 8,'maxTime': 20,'scrollDefaultNow': true,'step': 60 });
        $('#from').on('change', function() {
            var fromTime=$(this).val();
            var hrs = Number(fromTime.match(/^(\d+)/)[1]);
            var format = fromTime.match(/00(.*)$/)[1];
            if (format == "pm" && hrs < 12) hrs = hrs + 12;
            if (format == "am" && hrs == 12) hrs = hrs - 12;
            var hours = (hrs+4).toString();         
            var sFromPuls= (parseInt(osSeletecdTime)+4).toString();
            $('#to').timepicker({ 'minTime': fromTime,'maxTime':hours ,'scrollDefaultNow': true,'step': 60 });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      相关资源
      最近更新 更多