2012-02-23 45 views
0

我希望編寫驗證它是附着在12H格式jQuery的時間驗證

HH:MM AM|PM 

沒什麼花哨的文本字段的時間格式的功能。只是將文本字段變成紅色的東西。我不希望它甚至不讓表單提交。我只是想讓用戶知道他是一個白癡進入錯誤的時間。我心中已經有了一個正則表達式

(1[012]|0[1-9]):[0-5][0-9](\\s)?(?i)(am|pm) 

我想我唯一的問題是jQuery的格式。畢竟,在我熟悉jQuery語法的同時,我仍然沒有那麼舒服的編程。我將嘗試自己完成這個任務,但如果你們已經有了一個整潔的解決方案,那麼重新發明輪子就沒有意義了。讓我知道你們的想法。

這是我迄今爲止...測試它到目前爲止...關於使用jQuery驗證,儘管我以前的抗議

$('#DischargeDateTimeMask').blur(function() { 
     var inputVal = $(this).val(); 
     var dateReg = /^(1[012]|0[1-9]):[0-5][0-9](\\s)?(?i) (am|pm)$/ 
     if (!characterReg.test(inputVal)) { 
      $(this).after('<span class="error error-keyup-4">Incorrect time format fool!: HH:mm am|pm</span>'); 
     } 
    }); 

回答

2

你到底想知道什麼思考?您可以使用您的形式正則表達式提交,看看它是否在外地的,像這樣的值相匹配:

var myregex = new RegExp(""); 
$("#myform").submit(function() { 
    if(!$("#mydateinput").val().match(/(1[012]|0[1-9]):[0-5][0-9](\\s)?(?i)(am|pm)/)) { 
     // Do stuff to show things about things being invalid. 
     return false; 
    } 
}); 

但是,什麼是真正的問題? :)

+0

我猜我只是想練習寫一些jQuery。我目前使用$ .blur事件來比較鍵值......我最初嘗試避免jquery驗證,因爲如果用戶在時間字段中沒有輸入值,我確實希望這個提交(這不是必需的),我不知道如何在Validation中使用正則表達式,但在過去的幾分鐘裏,我一直在重新思考......我將使用迄今爲止的內容來更新我的帖子。 – SoftwareSavant 2012-02-23 14:54:09

0

這是什麼我尋找...

$('#DischargeDateTimeMask').blur(function() { 
    var inputVal = $(this).val(); 
    var dateReg = /^(1[012]|0[1-9]):[0-5][0-9](\\s)? (am|pm)+$/; 
    if (!characterReg.test(inputVal)) { 
     $(this).after('<span class="error error-keyup-4">Incorrect time format fool!: HH:mm am|pm</span>'); 
    } 
    //alert(dateReg.test(inputVal)); 
}); 
0

我寫了代碼檢查開始時間是否比刨絲結束時間

檢查10:00:00 < 12:00:00在這個時間格式

//開始時間= 10:00:00

//結束時間= 12:00:00

// ------代碼jQuery的-------

<script type="text/javascript"> 


     $.validator.addMethod("graterThan", function(value, element,date) { 
      //If false, the validation fails and the message below is displayed 

      var st= $(date).val(); 
      var etime=parseInt(value.replace(/:/g,""),10); 
      var stime=parseInt(st.replace(/:/g,""),10); 
      return etime>stime; 
     }, "End time must be larger than start time"); 

// ----如何調用-------

 $().ready(function() { 

      $("#AllocationForm").validate({ 
       rules : { endTime:{graterThan:"#startTime"}} 
      }); 

     }); 

    </script> 
+0

這根本不回答這個問題.... – 2012-10-29 00:44:19