2016-10-10 6 views
-1

本当に基本的な問題はここにあります。バリデーションをゼロからコード化したのは初めてで、なぜ動作していないのか理解できません。送信ボタンをクリックすると、「あなたのファイルは見つかりませんでした」ページに転送されます。それは私のバリデータを全く認めない。バリデーターに一般的に入力して、これを改善したり修正したりする方法は非常に感謝しています。シンプルなバリデーターは動作しません。カスタムバリデーターは初めてです

<DOCTYPE!> 
 
<html> 
 
    <head> 
 
     <script src="gen_validatorv4.js" type="text/javascript"></script> 
 

 
     <link rel="stylesheet" type="text/css" href="style.css"> 
 

 
     <body> 
 
     <div id= "videoGameCircuit"> 
 
      <img src="Images/vg.jpg" width="900" height="400" alt="video game circuit" /> 
 
     </div> 
 
     <div> 
 
      <form action="myForm" onsubmit="return validateForm()" method="post"> 
 
      Name: <input type="text" name="name" value="" size="25" maxlength="50" /><br> 
 
      Email: <input type="text" name="email" value="" size="25" maxlength="50" /><br> 
 
      <input type="submit" name="submit" value="sign me up!" /> 
 
      </form> 
 
      <script type="text/javascript"> 
 
      var frmvalidator = new Validator("myForm"); 
 
      //where myform is the name/id of your form 
 

 
      var ele = myForm; ele.addEventListener("submit", function(e){e.preventDefault(); 
 
     
 

 
      frmvalidator.EnableOnPageErrorDisplaySingleBox(); 
 
      frmvalidator.EnableMsgsTogether(); 
 

 

 
      frmvalidator.addValidation("name","req","Please enter your name"); 
 
      frmvalidator.addValidation("name","maxlen=20", \t "Max length for name is 20"); 
 
      frmvalidator.addValidation("name","alpha_s","Name can contain alphabetic chars only"); 
 
      </script> 
 
     </div> 
 
     </body> 
 
    </head> 
 
</html>

+0

http://stackoverflow.com/questions/27918843/javascript-validate-form-b​​efore-submit .. http://stackoverflow.com/questions/27918843/javascript-validate-form-b​​efore-submit –

+0

よく見るそこ。フォーム提出で問題があります。デフォルトのサブミットを防止するリスナーをフォームに追加する必要があります。その後、あなたはあなたの妥当性検査を実行し、後でそれを提出することができます。ここではリスナーの例ですhttp://stackoverflow.com/questions/7410063/how-can-i-listen-to-the-form-submit-event-in-javascript ..またvalidateForm()メソッド?あなたはそれを手に入れましたか? –

+0

@MykolaBorysyukは依然として同じ問題です。 –

答えて

0

あなたのケースでは、検証を行う前に、フォームのデフォルトsubmitingを停止する必要があります。

あなたの場合はこのようなものです。

var frmvalidator = new Validator("myForm"); 
     //where myform is the name/id of your form 
     frmvalidator.EnableOnPageErrorDisplaySingleBox(); 
     frmvalidator.EnableMsgsTogether(); 
     frmvalidator.addValidation("name","req","Please enter your name"); 
     frmvalidator.addValidation("name","maxlen=20", "Max length for name is 20"); 
     frmvalidator.addValidation("name","alpha_s","Name can contain alphabetic chars only"); 
//add id to form like id="myForm" 
document.querySelector("#myForm").addEventListener("submit", function(e){ 
    e.preventDefault(); //stop form from submitting 
    //run your validation code 
    var valid = frmvalidator.valid();//your custom validation method 
    if(!valid){ 
     //alert to user 
    } 
    else { 
     //submit form 
     e.submit(); 
    } 
}); 

希望します。

+0

いいえ運がありません。しかし、ありがとう。 –

+0

あなたは必ずonsubmit = "return validateForm()"をクリアし、idをフォームに追加しますか? –

+0

どうすればいいのかわかりません。これは文字通り私が今までWeb開発におけるカスタムイベント処理を見てきた初めの朝です。 –

関連する問題