2011-11-17 25 views
0

我可以对这段代码做些什么来确保它可以允许在过去和未来添加缺失?每当我尝试在过去添加任何东西时,它似乎仍想给我一个错误,即我无法在过去添加缺席。我甚至不知道如何编码以确保它可以或删除哪一位。我知道有一些代码不允许我使用,但我不确定哪些位以及要删除的内容。我对JavaScript并不是非常熟练,但它在我的项目中,我不确定如何处理它。确保日期可以在过去添加

dateValid: function() { 
    var s = $(this).val(); 

    if ($(this).required()) { 
     var date = new Date(s); 

     if (!isNaN(date)) { 
      if (date >= Date.parse(new Date().toDateString())) { 
       $(this).removeClass("error"); 
       return true; 
      } 
      else { 
       validation.showError("Past", $(this).attr("name")); 
       $(this).addClass("error"); 
       return false; 
      } 
     } 
     else { 
      validation.showError("Invalid", $(this).attr("name")); 
      $(this).addClass("error"); 
      return false; 
     } 
    } 
    else return false; 
}, 

dateRangeValid: function (toDate) { 
    var s = $(this).val(); 

    if ($(this).required()) { 
     if (toDate.required()) { 
      var dateFrom = new Date(s); 
      var dateTo = new Date(toDate.val()); 

      if (!isNaN(dateFrom) && !isNaN(dateTo)) { 
       if (dateTo >= dateFrom) { 
        if (dateFrom >= Date.parse(new Date().toDateString())) { 
         $(this).removeClass("error"); 
         toDate.removeClass("error"); 
         return true; 
        } 
        else { 
         validation.showError("Past", "date"); 
         $(this).addClass("error"); 
         toDate.addClass("error"); 
         return false; 
        } 
       } 
       else { 
        validation.showError("Invalid", "date"); 
        $(this).addClass("error"); 
        toDate.addClass("error"); 
        return false; 
       } 
      } 
      else { 
       validation.showError("Invalid", "date"); 
       $(this).addClass("error"); 
       toDate.addClass("error"); 
       return false; 
      } 
     } 
     else { 
      validation.showError("Required", "dateTo"); 
      $(this).addClass("error"); 
      toDate.addClass("error"); 
      return false; 
     } 
    } 
    else { 
     validation.showError("Required", "dateFrom"); 
     $(this).addClass("error"); 
     toDate.addClass("error"); 
     return false; 
    } 
}, 
+0

您的程序是否阻止过去添加选定的日期,或者jQuery datepicker不允许您在第一个地方选择一个? – weltraumpirat

+0

我的程序阻止我在过去添加日期,它允许我选择它。对不起,这是一个错误的代码要看?否则,我可以选择另一个位。 – kellehbeans

+0

是的,这段代码并没有太多的功能。请发布错误消息(如果有)以及“addAbsence”的代码。 – weltraumpirat

回答

0

这是你的错误:

  if (dateTo >= dateFrom) { 

       // This if statement checks if dateFrom is today or later!! 
       if (dateFrom >= Date.parse(new Date().toDateString())) { 

        $(this).removeClass("error"); 
        toDate.removeClass("error"); 
        return true; 
       } 
       else { 
        validation.showError("Past", "date"); 
        $(this).addClass("error"); 
        toDate.addClass("error"); 
        return false; 
       } 
      } 

替换

  if (dateTo >= dateFrom) { 
       $(this).removeClass("error"); 
        toDate.removeClass("error"); 
        return true; 
      } 

而且应该不再是一个问题。

+0

非常感谢您的帮助! :-) – kellehbeans