2011-12-30 61 views
0

jQuery中我嘗試驗證我的page.I不得不filds txtStartDatetxtEndDate。我想日期驗證起始日期比末低date.How這種情況下給出code.Bcz txtPageNametxtTitle追加已經驗證。謝謝。比較使用validate.js

    var v = $("#form1").validate({ 
        ignore: ':hidden', 
        rules: { 
         : { required: true }, 
         txtTitle: { required: true } 


        }, 
        messages: { 
         txtPageName: "<br/>Please enter a Page Name", 
         txtTitle: "<br/>Please enter a Title" 
        } 
       }); 
+0

可能的重複:http://stackoverflow.com/questions/833997/end-date-greater-than-start-date-jquery-validation – 2011-12-30 05:16:14

+0

@SKS謝謝link.But上面的鏈接我嘗試並得到一個錯誤在控制檯'jQuery.validate是undefined'.Any方式感謝您的鏈接。 – 2011-12-30 05:33:45

回答

2

您可能需要一個自定義規則來做到這一點。請參閱以下代碼: isAfterStartDate如果小於結束日期並且返回布爾值,則檢查是開始日期。這由自定義驗證規則用於驗證txtEndDate。

var isAfterStartDate = function(startDateStr, endDateStr) { 
      var inDate = new Date(inDateStr), 
       eDate = new Date(endDateStr); 

      if(inDate < eDate) { 
       return false; 
      } 

     }; 
jQuery.validator.addMethod("isAfterStartDate", function(value, element) { 

     return isAfterStartDate($('#txtStartDate').val(), value); 
    }, "End date should be after start date"); 

var v = $("#form1").validate({ 
       ignore: ':hidden', 
       rules: { 
        txtPageName: { required: true }, 
        txtTitle: { required: true }, 
        txtStartDate : {required: true} 
        txtEndDate: { 
            required: true, 
            isAfterStartDate: true 
           } 


       }, 
       messages: { 
        txtPageName: "<br/>Please enter a Page Name", 
        txtTitle: "<br/>Please enter a Title" 
       } 
      }); 

這項工作假定日期格式爲「dd/mm/yyyy」。

+0

非常感謝。但我得到了一個錯誤'jQuery.validator是undefined'.什麼是我的錯誤? – 2011-12-30 05:48:55

+0

只是問,你有沒有在你的頁面中包含jQuery驗證插件? – Sandeep 2011-12-30 06:11:46

+0

雅我包括jQuery驗證插件。 – 2011-12-30 06:35:27