2009-04-16 11 views
0

私は実行しているコンテストのエントリーフォームにjavascriptフォームの検証を使用しています。特定の条件が満たされない場合は、「メールアドレスを入力してください」または「有効なメールアドレスのようには見えません」などのメッセージが赤色で表示されるように、インラインCSSです。サーバー/ローカルでのjavascriptフォームの検証

スクリプト、このようになり、ファイルの先頭に着座する:

<form onSubmit="return checkForm();" method="get" action="sweepstakes-results.php" 
<input type=checkbox name=terms id=terms ><br></p> 
<div class=error id=termsError>Required: Please check the checkbox<br></div> 
<p><input type=submit value=Send style="margin-left: 50px"> </p> 
</form> 
:電子メールと名前検証作業だけで、動作しません、フォームの一部は次のように正常に見える

<script> 

    function checkForm() { 
name = document.getElementById("name").value; 
email = document.getElementById("email").value; 
terms = document.getElementById("terms").value; 


    if (name == "") { 
    hideAllErrors(); 
document.getElementById("nameError").style.display = "inline"; 
document.getElementById("name").select(); 
document.getElementById("name").focus(); 
    return false; 
    } else if (email == "") { 
hideAllErrors(); 
document.getElementById("emailError").style.display = "inline"; 
document.getElementById("email").select(); 
document.getElementById("email").focus(); 
    return false; 
    } 

else if (!check_email(document.getElementById("email").value)) { 
hideAllErrors(); 
document.getElementById("emailError2").style.display = "inline"; 
document.getElementById("email").select(); 
document.getElementById("email").focus(); 
    return false; 
    } 

else if (!document.form1.terms.checked){ 
hideAllErrors(); 
document.getElementById("termsError").style.display = "inline"; 
document.getElementById("terms").select(); 
document.getElementById("terms").focus(); 
    return false; 
    } 

    return true; 
    } 

function check_email(e) { 
ok = "1234567890qwertyuiop[][email protected]_QWERTYUIOPASDFGHJKLZXCVBNM"; 

for(i=0; i < e.length ;i++){ 
if(ok.indexOf(e.charAt(i))<0){ 
return (false); 
} 
} 

if (document.images) { 
re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/; 
re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
if (!e.match(re) && e.match(re_two)) { 
return (-1);   
} 

} 

} 
function hideAllErrors() { 
document.getElementById("nameError").style.display = "none" 
document.getElementById("emailError").style.display = "none" 
document.getElementById("commentError").style.display = "none" 
document.getElementById("termsError").style.display = "none" 

    } 

「利用規約」チェックボックスは、ファイルがローカルマシン上にある場合、アップロードするとjusそれがチェックされていなくても、私はフォームを提出しましょう。 javascriptがブラウザで実行されていませんか?どのようにファイルの場所が違いますか?

答えて

0

フォームは名前がありませんので、次のコードは動作しません。

else if (!document.form1.terms.checked){ 

すでにチェックアウトのDOMオブジェクトを取得しているので、次の操作を行います。

terms = document.getElementById("terms").value; 

へ:

terms = document.getElementById("terms"); 

としたコードならば、他のものに置き換える:行を変更

else if (!terms.checked){ 
+0

あなたは正しかったです!私はあなたが言ったようにしましたが、新しい問題があります。今、私は妥当性検査を通過できません。私がボックスにチェックを入れても、それが何を返しても間違っています。 –

+0

また、私がその変更を加えると、それがローカルのときはもはや機能しません。 –

+0

ごめんなさい - コードエラーがありました –

関連する問題