2011-11-13 10 views
1

このような問題をデバッグする方法にあまり慣れていないと困っています。私のHTMLでは、私は、フォーム持って言うことができます:これは正常に動作しますが、いないのFirefoxにIEでFirefoxでフォーム要素を呼び出せません

myForm.myType[0].checked 

:JavaScriptコードで

<form name="myForm" > 
    <table>  
    <tr> 
    <td> 
     <input type="radio" name="myType" value="val" onclick="someFunc(this.value)"checked > stuff here 
     <input type="radio" name="myType" value="val2" onclick="someFunc(this.value)"> stuff2 here 
    </td> 
    .. 
</form> 

を、私がすることで、これを参照しています。 Firefoxでは、私が試した:また

alert (myForm) 

とを:

if (frmDateType == null) 
{ 
    alert('null!'); 
} 
else 
{ 
    alert('not null!'); 
} 

しかし、それはIEで結構ですけれども、Firefoxがさえ警告を表示しません。これらの両方のケースでは、それは基本的に何もしません。 Firebugをインストールしましたが、エラーは表示されません(少なくとも、私は見つけられません)。だから私はそのような問題をデバッグする方法がわからないのですが、何故エラーが表示されないのですか、FirefoxがMyFormを好まないのはなぜですか?任意のヒント?

+0

'frmDateType'は何ですか? –

+0

あなたはgetElementById関数を使ってみましたか?あなたは名前の属性をidに変更する必要があります。 – Frank

答えて

2

名前属性を持つものはすべて、一致するグローバル変数を取得すると仮定しています。これは非標準的な動作です。

注:フォームに名前を与えるべきではありません

は、仕様を参照してください、とにかく属性。この属性は下位互換性のために含まれています。アプリケーションは、要素を識別するためにid属性を使用する必要があります。

したがって、最初にname属性をidに置き換えます。

<form id="myForm"> 

そして、あなたは経由して、フォームにアクセスすることができます。私はあなたのFirefoxはどんな警告が表示されていない理由としてはよく分からない

document.getElementById('myForm') 

または

document.forms.myForm 
+0

いいえはい名前をIDに変更しました。完全なパスが動作します。つまり、document.forms.myFormとmyFormの比較は – webdevNewbie

+0

です。 'document.forms.myForm'は' name'を 'id'に変更しなくてもうまく動作します。 HTML5には、この目的のために 'name'属性を使用することに関する同等の警告はありません。「name属性は、フォームコレクション内のフォームの名前を表します。値は空の文字列であってはなりません。値はフォームコレクション内のフォーム要素の中で一意でなければなりません。 – Alohci

+0

はい私はそれがmyForm対document.forms.myFormだと思います – webdevNewbie

1

。 Firefoxエラーコンソールを確認する必要があります。アドレスバーをクリックし、キーボードのAltキーを押すだけで、システムメニューが強調表示されます。 [ツール] - > [Web開発者 - >あなたはロード時にページ上で発生したすべてのJavaScript、HTMLとCSSのエラーを表示することができますWebコンソール...

-

フォームを参照していることを確認してくださいcurrectly JavaScriptで:

myForm = document.getElementById("myForm"); // This requires the form to have an id. 

また、あなたがその名前を使用してフォームを参照することができます(!常に作品ではない)

myForm = document.forms.myForm; 
関連する問題