2011-07-07 14 views
0

私はいくつかのJavascriptフォーム検証をまとめて、提出する前にすべてのフィールドが完了していることを確認しようとしています。ことができますJavascriptフォームの検証問題

<form action="jobpreview.php" name = "preview" method="post" form enctype="multipart/form-data" onSubmit = "return validate(this)"> 

<ul> 
<li><label for = "company_name">Company Name</label>  
<input type="text" name="company_name"/> 
</li> 

<script type="text/javascript"> 

function validate(form) { 
fail = vaildatecompany_name(preview.company_name.value) 

if (fail =="" return true 

else { alert(fail); return false } 
} 

function validatecompany_name(field) { 
    if (field == "" return "No Company Name was entered. \n" 
return "" 
} 
</script> 

と私は検証しようとしている最初のフィールドは次のとおりです。これまでのところ、私は私のタグにこれを持って、そして唯一の最初のフォームフィールドの機能

誰かが私が間違っていることを説明する?フィールドにエントリーのないフォームを送信したときに警告を出すことはなく、通常のように進んでいます。

おかげ ダン

答えて

2

コードはエラーでいっぱいですs。 validatecompany_name関数の呼び出しが間違っていると、if文が正しく構成されず(誤った括弧)、form変数が正しく渡されません(previewformを同じ意味で扱います)。それは偉大なコードではないのですが、これは、動作します:

function validate(form){ 
    var fail = validatecompany_name(form.company_name.value); 
    if (fail==""){ 
     return true; 
    } else { 
     alert(fail); 
     return false; 
    } 
    } 

function validatecompany_name(field){ 
    if (field == "") return "No Company Name was entered. \n"; 
    return ""; 
} 
+0

あなたは' \ n '' validatecompany_name'からの戻り値では、何も得られません。 – Ben

+0

ベン、これは実際にはO'Reillyの本からコピーされています(しかし、私のためにタイプミスはひどいです)。あなたのお時間をありがとう、これは今働いています。ありがとう、ダン – Dan

+0

私たちは少なくとも "return(field ===" ")?"会社名は入力されていません ":"; ' – mplungjan

1

if (BOOLEAN)

+0

まあ少し恥ずかしい! OK、私は閉じ括弧を入れましたが、それはまだ提出時に空のフィールドを認識していません。何か案は? – Dan

0

ワットが適切な閉鎖を行う... if (field == "" return "No Company Name was entered. \n"はそれがif (field == "") return "No Company Name was entered. \n"

ようにする必要があり、あなたは直接フォームにアクセスすることはできません。この文である場合は、あなたに閉じ括弧が必要document.formnameを使用するか、渡されたフォームオブジェクトを使用してください。

+0

警告の 'preview.company_name.value'の値をチェックし、他のすべてのコードをコメントしてください...' if(field.trim()== "") ' – Dinash

1

javascriptの検証平野と非空想:だ

<script type="text/javascript"> 
function validate(form) { 
    var company_name=form.company_name; 
    if (company_name.value=="") { 
    alert("Please enter company name"); 
    company_name.focus(); 
    return false 
    } 
    var company_phone=form.company_phone; 
    if (company_phone.value=="") { 
    alert("Please enter company phone"); 
    company_phone.focus(); 
    return false 
    } 
    return true; // allow submission 
} 
</script> 

<form action="jobpreview.php" method="POST" 
enctype="multipart/form-data" onSubmit="return validate(this)"> 

<ul> 
<li><label for = "company_name">Company Name</label>  
<input type="text" name="company_name"/> 
</li> 
. 
. 
. 
</form> 

あなたはそれよりも複雑なものが必要な場合は、代わりにjQueryの検証を見て

+0

あなたの答えをありがとう:) – Dan

+0

@ダンあなたは大歓迎です。私の提案はあなたが維持するのがずっと簡単です。一度に1つのエラーが表示され、そのフィールドにエラーが集中します – mplungjan

関連する問題