通过比较日期禁用复选框

时间:2015-03-01 14:46:15

标签: jquery

我正在开展一个项目并需要一些帮助。我想做这样的事情 所有复选框都具有相同的类,并且它们的数据是从数据库中提取的。 如果我选中复选框1,则复选框2应该被禁用,因为复选框2的日期位于复选框1的日期持续时间中。当选中复选框2时,由于日期,checbox1和复选框3应该被禁用。这将在大量复选框中发生。

  1. 这是复选框1(2015-03-02至2015-03-09)

  2. 这是复选框2(2015-03-05至2015-03-15)

  3. 这是复选框3(2015-03-13至2015-03-19)

1 个答案:

答案 0 :(得分:0)

我希望这会给你一个开始的想法

 $('.chkboxClass').on('click',function()
{
    if($(this).hasClass('active'))
    {
        $(this).siblings().attr("disabled", false);
        $(this).removeClass('active');
        return;
    }
    $(this).addClass('active');
    var elem = $(this).val();  // Fetching the selected checkbox value
    var selectedDateSplit = elem.split('to');
    var selectedEndDate = new Date(selectedDateSplit[1].trim());  
    var allOthorCheckBox = $(this).siblings(); //Find all other checkboxes

    $(allOthorCheckBox).each(function(){ // Looping through the chckboxes
        var chkBoxValue = $(this).val();
        var chkBoxValueSplit = chkBoxValue.split('to');
        var otherCheckBoxStartDate =  new Date(chkBoxValueSplit[0].trim());
        if(selectedEndDate > otherCheckBoxStartDate) // Checking selected checkbox endDate > other chckbox start date 
        {
            $(this).attr("disabled", true);
        }
    });

添加了更新的js小提琴链接。 http://jsfiddle.net/LMKLMK/47m2ehvf/3/