2017-11-07 10 views
-1

私はテキストフィールドを持っています。ユーザーが日付を入力すると自動的にスラッシュが追加されますが、問題は60/60/6060も受け入れます。 また、文字も受け入れます。あなたはそれで検証で私を助けてくれますか?自動的にスラッシュを追加した後に日付を検証する方法は?

$(document).ready(function(){ 
 
      $("#txtDate").keyup(function(e){ 
 
       if (e.keyCode != 8){  
 
        if ($(this).val().length == 2){ 
 
         $(this).val($(this).val() + "/"); 
 
        }else if ($(this).val().length == 5){ 
 
         $(this).val($(this).val() + "/"); 
 
        } 
 
       } 
 
      }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<input type="text" name="date" placeholder="date (dd/mm/yy)" maxlength=10 id="txtDate">

答えて

0

あなたは、日付を検証するためにcheckdate($のm番目、$日、$年)や正規表現を使用することができます。

/(0\d{1}|1[0-2])\/([0-2]\d{1}|3[0-1])\/(19|20)\d{2}/ 


$(document).ready(function() { 
     $("#txtDate").keyup(function (e) { 
      if (e.keyCode != 8) { 

       if ($(this).val().length == 2) { 
        $(this).val($(this).val() + "/"); 
       } else if ($(this).val().length == 5) { 
        $(this).val($(this).val() + "/"); 
       } 

      } 
     }); 

     //below will clear the textbox onblur if invalid date entered 
     $("#txtDate").blur(function() { 
      var reg = /(0\d{1}|1[0-2])\/([0-2]\d{1}|3[0-1])\/(19|20)\d{2}/; 
      if (!reg.test($("#txtDate").val())) { 
       // clear box if invalid 
       $("#txtDate").val(""); 
      } 
     }); 
    }); 
+0

返信いただきありがとうございます。どこで使うべきですか –

+0

それはほぼ90%の問題を解決しました。ただ知りたいです。 $( "#txtDate")のhtml( "無効な日付")を設定することはできますか? –

+0

はい、あなたの要件に応じて、その検証メッセージを表示するために、テキストボックスまたは任意のラベルの値を設定できます。 – Chidambaram

関連する問題