2012-05-02 7 views
0

javascriptを使用してフォーム検証を実行しようとしています。エラーが見つかった場合、javascriptはサーバーにフォームの送信を停止する必要があります。検証後にJavascriptがサーバーに送信されなくなりません

私は、javacriptが文を書くことによってfalseを返すことを確認しました。 return false;

この形式はサーバーに送信されます。

スクリプトタグ:

<script language="javascript" src="validations.js" type="text/javascript"></script> 

私のformタグ:

FORM id="frm" name="newCustomer" METHOD="POST" ACTION="register.php" onsubmit="return validateNewCustomer()"> 

JavaScriptの機能:私はあなたの助けに感謝

function validateNewCustomer() { 
    var name = document.getElementById('f_name').value; 

    var okCustomer = true; 

    if (name.value == "") { 
     document.getElementById('f_name').value="kossetak"; 
     document.getElementById('errfname').innerHTML = "Error Name"; 
     okCustomer = false; 
    } else { 
     document.getElementById('errname').innerHTML = ""; 
     okCustomer = true; 
    } 

    return okCustomer; 
} 

。 ありがとうございます。

+3

あなたは 'validateNewCustomer()' JavaScript関数を投稿することができますか? – Paulpro

+0

あなたはどこで 'false'を返していますか?すべての関連コードを表示してください。 –

+1

Firebugにエラーがありますか?たぶんあなたのJavaScriptにエラーがあり、falseが返されないので、フォームsubmit –

答えて

8

name.value == ""は常にfalseなので、関数からtrueを返すので、else節を入力します。すでにこの行に.valueを持って

注意:あなたがname.valueを言うとき

var name = document.getElementById('f_name').value 

だからあなたがundefinedなりますdocument.getElementById('f_name').value.valueにアクセスしています。

+0

あなたは正しいです。ありがとう – user1203861

+0

@ user1203861問題はありません:) – Paulpro

0

おそらく、HTMLアクションパラメータを使用するのではなく、JavaScript関数内でフォームを送信することを検討する必要があります。

この例は次のようになります。

<form id="frm" name="newCustomer" onsubmit="return validateNewCustomer()">...</form> 

はJavaScript:

function validateNewCustomer() { 
    var name = document.getElementById('f_name').value; 

    var okCustomer = true; 

    // name.value replaced to name 
    if (name == "") { 
     document.getElementById('f_name').value="kossetak"; 
     document.getElementById('errfname').innerHTML = "Error Name"; 
     okCustomer = false; 
    } else { 
     document.getElementById('errname').innerHTML = ""; 
     // Submit the document here 
     document.forms["newCustomer"].submit(); 
     // Still supply a return value in case you need it later 
     okCustomer = true; 
    } 

    return okCustomer; 
} 
関連する問題