时间选择器范围验证,用于在jquery中附加4个以上的文本框

时间:2014-03-18 10:09:41

标签: javascript jquery jquery-ui timepicker

我有一个文本框,用于询问每天有多少匹配的时间表。基于此,我需要获得整个计划的开始时间和结束时间。

如果用户可以输入3个时间表,那么我需要获得3个3个开始时间和结束时间。这工作正常,但问题是我需要避免相互冲突的时间。

例如

  
      
  1. 安排时间:开始时间是9:00,结束时间是8:30(时间冲突)

  2.   
  3. 时间表1是9:30到12:30,时间表2是10:30到13:30(时间表冲突)

  4.   

这些是我需要避免的冲突,有人帮助我。

我试过这个示例点击按钮,显示:

http://jsbin.com/lixig/8/edit

1 个答案:

答案 0 :(得分:0)

您可以使用以下功能确定两个数字范围是否重叠。它接受两个[start, end]形式的数组。

function rangesOverlap(range1, range2) {
  return range1[1] > range2[0] && range2[1] > range1[0];
}

假设您有一系列范围,以确定没有重叠:

function noneOverlap(ranges) {
  var untestedRanges = ranges.slice();
  return ranges.every(function(range1) {
    untestedRanges.shift();
    return untestedRanges.every(function(range2) {
      return ! rangesOverlap(range1, range2);
    });
  });
}

例如:

noneOverlap([[0,1],[0,2]]) // => false
noneOverlap([[0,1],[2,3]]) // => true