2009-05-21 25 views
1

こんにちは私は、テキストボックスに入れられたユーザー情報を検証するajaxスクリプトを持っています。これはInternet Explorerで正常に動作しますが、FireFoxではリストボックスから性別を取得する際にエラーが発生します。私はジェンダーを簡単な処理のために隠しテキストボックスに配置しました。 FFで取得したエラーはIE/FirefoxのAjaxの問題

dd is nullです。 [このエラーで中止] theindex = dd.options [dd.selectedIndex] .value;

JavaScriptで私の機能は以下の通りです、これは体の負荷に、または選択性別が変更された後にロードされ、

関数get_gender() {
{

var dd = document.getElementById("gender_select"); 
    theindex = dd.options[dd.selectedIndex].value; 
    thevalue = dd.options[dd.selectedIndex].text; 
    } 

    document.getElementById("gender_text").value = thevalue;  

} 

一つ私は他の問題divボックスを隠していると、IE以外のブラウザーでもうまく動作します。エラーが出るとdivボックスが表示されるだけですが、IEではdivボックスが常に表示されます。

私は次の行を使用しています: document.getElementById( "username_div")。style.visibility = "hidden";

http://elliottstocks.com/assignment/sign_up/ でのライブページを表示することができ、すべての私のコードを貼り付けるにはログインボックスを無視するのではなく、これが正常に動作します。

ご意見・ご協力をよろしくお願いいたします。おかげでたくさん=)ヌルエラー変更の

答えて

3

getElementByIDでは、HTML要素にIDが必要です。名前だけでは十分ではありません。あなたの第二の問題については

<select name="gender_select" id="gender_select" onChange="get_gender()"> 
    <option>Male</option> <option>Female</option> 
</select> 
2

<select onchange="get_gender()" name="gender_select"> 

<select onchange="get_gender()" name="gender_select" id="gender_select"> 

document.getElementById

には、与えられた id属性を持つDOMの要素を探しています。 IEで動作する理由は、 name属性でも選択できるためです。

+0

私はそれが何か簡単だと思った、ありがとう:) – Elliott

0

、あなたはディスプレイ=「なし」を試してみたいことがあります。あなたの要素のために。この動作はvisibility = hiddenとは異なることに注意してください。

+0

ありがとう しかし、それでもIEで動作しません – Elliott