2016-09-04 4 views
0

私はいくつかのフィールドとそれらをチェックするjavascript検証を持つHTMLフォームを持っています。私の問題はjsが何も返さないということです。ここでJavascriptフォームの検証で何も返されない

私のコードの例:

HTML

<form method="post" action="action.php" onsubmit="return validate_form();"> 
     <table> 
      <tr> 
      <td> 
       <label class="standard_text"> 
        E-mail 
       </label> 
      </td> 
      <td><input class="textarea" required type="email" name="mail" id="mail" placeholder="E-mail"></label></td> 
      <td><div class="check_icon icon_yes" style="display:none" id="mail_ok_icon"></div></td> 
      <td><div class="check_icon icon_no" style="display:none" id="mail_no_icon"></div></label></td> 
      <td><div class="check_message" style="display:none" id="mail_message"><label class="important_text">The email format is not correct!</label></div></td> 
      </tr> 
     </table> 
     <input class="button_submit" type="submit" name="send_form" value="Register"/> 
</form> 

Javascriptを

function validate_form(){ 

    //email var 
    var mail = document.getElementById("mail").value; 
    var mail_ok_icon = document.getElementById("mail_ok_icon"); 
    var mail_no_icon = document.getElementById("mail_no_icon"); 
    var mail_message = document.getElementById("mail_message"); 

    //email format check 
    if ((/(.+)@(.+){2,}\.(.+){2,}/.test(mail)) || mail=="" || mail==null) { 
     mail_no_icon.style.display="block"; 
     mail_message.style.display="block"; 
     return(false); 

    } else { 
     mail_ok_icon.style.display="block"; 
    } 
} 

だから私はjavascriptの確認に応じて、要素を表示しようとしているともしていますすべてのフィールドのチェックが完了していれば、ユーザーに情報を送信させないようにしようとする 正しくありません。

私には何が欠けていますか?私はそれが次のコードで作業してしまった

おかげ

+1

'else'部分は何も返しません。この関数は暗黙的に 'undefined'を返します。 – vlaz

答えて

0

- :

は、元のコードでは、電子メールの入力は、最初のインスタンス内のJavaScriptコードが呼び出されることはありませんrequiredtype="email"を持っていました。今ここに

<html> 
<head> 
    <script type="text/javascript" src="test.js"></script> 
</head> 
<body> 
    <form method="post" action="action.php" onsubmit="return validate_form();"> 
     <table> 
      <tr> 
      <td> 
       <label class="standard_text"> 
       E-mail 
       </label> 
      </td> 
      <td><input class="textarea" name="mail" id="mail" placeholder="E-mail"></label></td> 
      <td><div class="check_icon icon_yes" style="display:none" id="mail_ok_icon"></div></td> 
      <td><div class="check_icon icon_no" style="display:none" id="mail_no_icon"></div></label></td> 
      <td><div class="check_message" style="display:none" id="mail_message"><label class="important_text">The email format is not correct!</label></div></td> 
     </tr> 
     </table> 
     <input class="button_submit" type="submit" name="send_form" value="Register"/> 
    </form> 
</body> 
</html> 

jsのコードがある - :

function validate_form() { 
    //email var 
    var mail = document.getElementById("mail").value; 
    var mail_ok_icon = document.getElementById("mail_ok_icon"); 
    var mail_no_icon = document.getElementById("mail_no_icon"); 
    var mail_message = document.getElementById("mail_message"); 

    //email format check 
    if (!(/(.+)@(.+){2,}\.(.+){2,}/.test(mail)) || mail=="" || mail==null) { 
     mail_no_icon.style.display="block"; 
     mail_message.style.display="block"; 
     console.log('hi');   
     return false; 
    } else { 
     mail_ok_icon.style.display="block"; 
     return true; 
    } 
} 
+0

@AleixGalletSegarra @nitin 'type =" email "または" required "を削除することは推奨されません。これはHTML標準であり、javascriptが無効になっていても検証のために動作するからです。正規表現チェックの前に '!'のjsロジックを変更し、コードを修正する 'return'ステートメントだけを変更する必要があります。 –

+0

@AleixGalletSegarraうまくいけば、答えを受け入れるかもしれません。 –

+0

ありがとう、これを試してみます) @Nitin Misra "評判が15未満の人の投票が記録されますが、公開されている投稿のスコアは変更されません" –

関連する問題