检查一对时间输入是否不大于或小于后续时间输入

时间:2017-01-01 17:12:49

标签: javascript jquery input

Noob在这里,我试图创建一个javascript代码,其中检查时间范围是否与后续时间范围不重叠。

我还检查了this但它只处理了一个重复的输入。

这是我的HTML:

<form>
<table>
<tr>
<td>
  <input type="time" class="time1" name="time1[]" id="1" required>
  <input type="time" class="time2" name="time2[]" id="1" required>
  <button class="add">Add
</td>
</tr>
</table>
<input type="submit" id="submit" value="check">
</form>

这里是脚本(根据链接主题的答案修改):

var i = 2;

$('.add').click(function(e){
  e.preventDefault();
  $('table').append('<tr><td><input type="time" class="time1"  name="time1[]" id="'+i+'" required><input type="time" class="time2"   name="time2[]" id="'+i+'" required> <button type="button"   class="add">Add</td></tr>');
  i++;
});

$('#submit').click(function () {
    var valid = true;

    $.each($(".time1"), function (index1, item1) {

        $.each($(".time1").not(this), function (index2, item2) {
            $.each($(".time2"), function (index3, item3) {

            $.each($(".time2").not(this), function (index4, item4) {
                if((($(item1).val() > $(item2).val()) && ($(item1).val() < $(item4).val()) || ($(item3).val() > $(item2).val()) && ($(item3).val() <= $(item4).val()))) {
                $(item1).css("border-color", "red");
                $(item3).css("border-color", "red");
                valid = false;
              }

            });

          });
        });
    });

    return valid;
});

这就是我想要发生的事情:

  • 脚本将检查输入Time1和Time2是否与下一个输入值不重叠。示例:First Time1的值为凌晨2:00,First Time2的值为凌晨3:00; Second Time1的值为2:15 AM,Second Time2的值为3:00 AM;第三时间1的值为2:20 AM,第三时间2的值为3:00 AM。该脚本应显示第二个和第三个时间范围与第一个时间范围重叠。
  • 它应该接受端到端时间,例如First Time1的值为2:00 AM,First Time2的值为3:00 AM。第二时间1的值为凌晨3:00,第二时间2的值为凌晨4:00。该脚本不会显示它们是冲突的:)

很抱歉,如果之前没有说清楚。 :)和平:D

提前谢谢! :)

0 个答案:

没有答案