这是我的代码:
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()" />
它检查是否选中了'return'复选框,如果是,则它会在我的表单中启用一些其他输入(它们最初被禁用)。
这在Firefox中完美运行并立即完成,但在IE中您必须单击文档中的空白区域才能进行更新。
我到处搜索,以找出发生这种情况的原因,但我找不到任何东西。
如果有人能帮助我,我会非常感激。
由于
答案 0 :(得分:0)
将onchange
更改为onclick
。这应该在单击元素时触发事件,而不是在“更改”时触发事件。由于您已经在检查是否在事件处理函数中检查了它,因此它应该以相同的方式工作。
另请注意,您可以使用this
传递相应的复选框,而不是获取相关的复选框:
<input name="return" id="return" type="checkbox" value="return" onclick="transferq(this)" />
然后在函数中使用对该元素的引用:
function transferq(elem) {
if (elem.checked == true) {
...
}
}
最后请注意,虽然没有必要使用它们,但最好在每行的末尾使用一个分号(应该有一个if
语句中的每一行)。
答案 1 :(得分:0)
您是否尝试将该功能附加到其他事件?喜欢使用onclick?
<input name="return" id="return" type="checkbox" value="return" onclick="transferq()" />
答案 2 :(得分:0)
将您的字段名称从“返回”更改为其他名称。 'return'是javascript中的关键字,我的关键字是html格式的名称。