2017-06-01 18 views
0

私は私のデータベースに簡単に挿入できるように、ヨーロッパの形式を使用して私の日付入力を検証しようとしています。私はエラーメッセージをポップアップ私はまだ十億回についての正規表現を変更した後、私はまだそれを働かせるように見えることができない必要な形式を使用するように指示しようとしているポップアップを取得しています。Javascriptの日付の検証が機能しません

以下は、挿入ボタンを押したときに呼び出されるJSスクリプトです。

 function checkForm(form) 
    { 
    // regular expression to match required date format 
    re = /^(\d{4})-(\d{1,2})-(\d{1,2})/> 

    if(form.startdate.value != '') { 
     if(regs = form.startdate.value.match(re)) { 

      // year value between 1902 and 2017 
     if(regs[1] < 1902 || regs[1] > (new Date()).getFullYear()) { 
      alert("Invalid value for year: " + regs[1] + " - must be between 1902 and " + (new Date()).getFullYear()); 
      form.startdate.focus(); 
      return false; 
     } 

     // month value between 1 and 12 
     if(regs[2] < 1 || regs[2] > 12) { 
      alert("Invalid value for month: " + regs[2]); 
      form.startdate.focus(); 
      return false; 
     } 
      // day value between 1 and 31 
     if(regs[3] < 1 || regs[3] > 31) { 
      alert("Invalid value for day: " + regs[3]); 
      form.startdate.focus(); 
      return false; 
     } 

     } else { 
     alert("Invalid date format: " + form.startdate.value); 
     form.startdate.focus(); 
     return false; 
     } 
    } 
    } 
    </script> 

これは、phpファイル(SQL側のものを扱う)を呼び出すもので、上記のJS関数と呼ばれる必要があります。同じ送信ボタン内のデータだけでなく、int量も挿入しているため、エラーであるかどうかはわかりません。

<form action="insertCarb.php" onsubmit="return checkForm(this)" method="post"> 
Carb Amount: <input type="text" name="CarbAmount" required/><br> 
Date: <input type="text" name="Date" required pattern="/^(\d{4})-(\d{1,2})-(\d{1,2})/" placeholder="yyyy/mm/dd"/><br> 
<input type="submit"> 
</form> 
+0

あなたはどのようなエラーメッセージを取得していますか?有効で無効なテストケースの日付が表示されますか? – sudo

+0

これは有効にする必要があります= "2017-05-31"。 これは有効ではない= "31-05-2017" メッセージは "要求されたフォーマットに一致してください"です(情報ポップアップです) –

+0

そしてこの2017-5-1もありますか? – sudo

答えて

0

次のコードに変更可能性がありますに

<input type="text" name="Date" required pattern="/^(\d{4})-(\d{1,2})-(\d{1,2})/" placeholder="yyyy/mm/dd"/> 

を:

<input type="text" name="Date" required pattern="\d{4}-\d{1,2}-\d{1,2}" placeholder="yyyy/mm/dd"/> 
関連する問題