2011-07-18 38 views
0

這裏是我的代碼:它檢查「迴歸」複選框是否被選中在Firefox中,但在IE中,他們做到實時表單元素更新不

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中,您必須單擊文檔中的空白處才能更新。

我已經在字面上搜索到處找出爲什麼發生這種情況,但我找不到任何東西。

如果有人能幫助我,我將非常感激。

感謝

回答

0

您是否嘗試過將該功能附加到其他事件?像使用onclick?

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

這正是問題所在,IE不喜歡'onchange'和'onclick'就像一個魅力。非常感謝! –

0

變化onchangeonclick。這應該在單擊元素後立即觸發事件,而不是「更改」時。由於您已經在檢查您的事件處理程序函數中是否已檢查它,因此它應該以相同的方式工作。

還要注意,而不是讓在功能問題的複選框,您可以通過它使用this

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

然後使用引用該元素的功能:

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

最後,請注意雖然沒有必要擁有它們,但在每行的末尾應使用分號(在if語句中的每行)末尾使用分號是個好主意。

+0

是的,它必須是'onlick'才能工作。謝謝!! –

0

將您的字段名稱從'return'更改爲其他名稱。 'return'是javascript中的一個關鍵字,我在html表單中遇到了關鍵字問題。

相關問題