2011-11-17 11 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