2011-07-16 25 views
0

フォームの名前フィールドの検証に使用している関数です。このコードはChromeとIEでは正常に動作していますが、FireFoxでは正常に動作していません。ChromeとIEでは正常に機能しますが、FireFoxでは機能しません

firbugでそれをチェックすると、それは、このエラーを与える:この行で

chkForm is not defined 

:事前に

if (chkForm.name.value == ""). 

おかげ

function uname() 
{ 
    if (chkForm.name.value == "") 
    { 
     alert("Please fill in Username box"); 
     chkForm.name.focus(); 
     return false; 
    } 
    return true; 
} 

をこれは、HTMLフォーム

です
<form name="chkForm" id="chkForm" method="post" action="" onsubmit="return Form_Validator(this)"> 
<table border="0" cellpadding="0" cellspacing="0" width="550" id="table1"> 
    <tr> 
     <td width="135">&nbsp;</td> 
     <td width="138">&nbsp;</td> 
     <td width="215">&nbsp;</td> 
    </tr> 
    <tr> 
     <td width="135">Username</td> 
     <td width="138"> 
     <input type="text" name="name" id="username" onblur="return uname()" size="20" class="input_s1_normal"></td> 
     <td width="215"> 
     <div id="nameInfo" align="left"></div> 
     </td> 
    </tr> 
    <tr> 
     <td width="135">Email</td> 
     <td width="138"> 
     <input type="text" name="email" id="email" size="20" class="input_s1_normal"></td> 
     <td width="215"> 
     <div id="emailInfo" align="left"></div> 
     </td> 
    </tr>  
    <tr> 
     <td width="135">&nbsp;</td> 
     <td width="138"> 
     <input type="submit" value="SAVE" name="B1" class="button_s1"></td> 
     <td width="215">&nbsp;</td> 
    </tr> 
</table> 

+1

:-)感謝の

var chkForm = document.getElementById('chkForm'); function uname() { var chkForm = document.getElementById('chkForm'); if (chkForm.name.value == "") { alert("Please fill in Username box"); chkForm.name.focus(); return false; } return true; } 

バンドルを次の行を追加した後、このコードは、今働いていますか? – Mat

+0

はい、HTMLも入力してください。 –

答えて

0

chkFormがこのように定義されているかどうかを確認できます。

これは理想的な方法ではないかもしれませんが、その方法を一般的な考え方で知ることができます。ここでの仮定を作る

function uname() 
{ 
    if(!(chkForm)){ 
     chkForm = document.getElementByID('chkForm'); 
    } 
    if (chkForm.name.value == "") 
    { 
     alert("Please fill in Username box"); 
     chkForm.name.focus(); 
     return false; 
    } 
    return true; 
} 
+0

これでもエラーが発生します。あなたは 'if(typeof chkForm ===" undefined ")' –

1

私はあなたがIEとChromeは、そのグローバルなVAR経由のIDを持つ要素のDOMへのアクセスを許可しているという事実に頼っていると仮定することにより、あなたのコードのすべてを見ることができないので、 ID。

あなたが実際に変数を定義し、そのようなノードへの参照を取得する必要があります:あなたのすべてに

var chkForm = document.getElementById('chkForm'); 
+0

をチェックする必要があります。 – sohail

0

ありがとうを。私は私のコードで Sohailアフマドあなたは `chkForm`を定義し、初期化しない

+0

警告の後でユーザ名フィールドに戻っていません。 chkForm.name.focus(); – sohail