2012-01-05 3 views
1

何らかの理由で、このコードはフィールドが空白であるかどうかにかかわらず、常にeducation.phpにリダイレクトされます。フィールドに値が入っていることを確認したいのですが、なんらかの理由でデータベースのリダイレクトは続けますが、何も書き込まないようにしています。どんな助けでも大歓迎です。Javascriptフォームの検証は引き続きリダイレクト

<body> 
<form action="education.php" method="post" onsubmit="return validate_fields()"> 
<div style="text-align: right"> 
<ul> 
First Name: <input id="first_name" name="first_name" size=25/> <br> 
Last Name: <input id="last_name" name="last_name" size=25/> <br> 
Email: <input id="emailaddress" name="emailaddress" size=25/> <br> 
Password: <input id="user_password" name="user_password" type="password" size=25/> <br> 
<center><input type="submit" name="submit" id="submit" value="Register Now"/></center> 
</ul> 
</div> 
</form> 
<script type="text/javascript"> 
function validate_fields() 
{ 
    var first_name = document.getElementByID("first_name").value; 
    var last_name = document.getElementById("last_name").value; 
    alert(""+first_name+" "+last_name); 
    if (first_name.length < 1 || last_name.length < 1) 
    { 
     alert("Please fill in your name."); 
     return false; 
    } 
    var email = document.getElementById("emailaddress").value; 
    if (email.length < 1) 
    { 
     alert("Please fill in your email address."); 
     return false; 
    } 
    var password = document.getElementById("password").value; 
    if (email.length < 1) 
    { 
     alert("Please put in a password."); 
     return false; 
    } 
    alert(first_name+" "+last_name+" "+email); 
    return false; //was true, changed to see if still redirects. 
} 
</script> 
</body> 
+0

姓名とメールアドレスの最後の「警告」が届いていますか?または前の警告のいずれか(悪名、悪い電子メール、悪いパスワード)? – OnlineCop

+0

警告が表示されません。 –

+0

最初のものさえありませんか? –

答えて

5

関数の最初の行に入力ミスがあり、false(またはtrue)が返されないため、まったく実行されていません。これは、アラートが表示されない理由と、フォーム提出がなぜ先行するのかを説明しています。

var first_name = document.getElementByID("first_name").value; 
// you need a lowercase "d" here ------^ 

それは.getElementById()、ない.getElementByID()でなければなりません。

これは、ブラウザ用の適切な開発ツールを使用して簡単に見つけることができます。 Chromeにはこの機能が組み込まれています(開発ツールを呼び出すためにctrl-shift-Jを押すだけです)。またはFirebug for FireFoxを追加することができます。IEには現在いくつかのバージョン用の開発ツールバーオプションがあります。

+0

これらのタイプミスに関する質問を削除することで、[スタックオーバーフローをクリーンアップするキャンペーン](http://meta.stackexchange.com/q/167342/187073)があります。あなたはこの質問に近い投票をして少し投球してもよろしいですか? – VisioN

2

あなたはここにタイプミスがあります

var first_name = document.getElementById("first_name").value; 

あなたはそれがByIdことsould ByID書きました!

関連する問題