2011-07-18 12 views
0

は、ここで私が持っているコードです:フォーム要素の更新はありません

function transferq() { 
if (document.forms[0].elements['return'].checked == true) { 
document.forms[0].elements['returnhour'].disabled = false 
document.forms[0].elements['returnminute'].disabled = false 
document.forms[0].elements['returnday'].disabled = false 
document.forms[0].elements['returnmonth'].disabled = false 
document.forms[0].elements['returnyear'].disabled = false 
document.forms[0].elements['returnflight'].disabled = false 
document.forms[0].elements['samereturn'].disabled = false 
} 
} 

<input name="return" id="return" type="checkbox" value="return" onchange="transferq()" /> 

「リターン」のチェックボックスがチェックされているかどうか、それがチェックし、それがある場合、それはいくつかのを可能にします私のフォームの入力は元々無効になっています。

これはFirefoxで完全に機能し、すぐに実行されますが、IEではドキュメント内の空白をクリックして更新する必要があります。

私は文字通りどこでも検索しましたが、なぜこのようなことが起こったのかを知りましたが、何も見つかりませんでした。

誰かが私を助けてくれたら大変感謝しています。

おかげonclick

答えて

0

機能を別のイベントに接続しようとしましたか? onclickを使うのが好きですか?

<input name="return" id="return" type="checkbox" value="return" onclick="transferq()" /> 
+0

これはまさに問題でした。IEは 'onchange'を好まず、 'onclick'は魅力のように機能します。どうもありがとうございます! –

0

変更onchange。これは、要素がクリックされるとすぐにイベントをトリガするはずです。イベントハンドラ関数でチェックされているかどうかをチェックしているので、これは同じように動作するはずです。

<input name="return" id="return" type="checkbox" value="return" onclick="transferq(this)" /> 

そして、関数内でその要素への参照を使用します:

はまた、代わりに関数の中で、問題のチェックボックスを取得する、あなたはthisを使用して、それを渡すことができることに注意してください

function transferq(elem) { 
    if (elem.checked == true) { 
     ... 
    } 
} 

最後に、必要なわけではありませんが、各行の末尾にセミコロンを使用することをお勧めします(各行はifステートメント内にあります)。

+0

はい、動作するには「onlick」でなければなりませんでした。ありがとう!! –

0

フィールド名を 'return'から別のものに変更します。 'return'はjavascriptのキーワードですが、html形式の名前としてキーワードに問題がありました。

関連する問題