我应该首先提到我正在使用Internet Explorer 6.我正在调用来自tabModifiedHighlight
事件的JavaScript函数(onChange
)。该功能完美地适用于其他地方,但是,当我选中复选框时,我在页面上有几个位置,但是当我取消选中时,事件似乎甚至没有触发。
这是JavaScript函数:
function tabModifiedHighlight(){
alert("alert");
var div, i, input, inputIndex, selects, selectIndex, selectedTab, highlighted;
var tabs = new Array("admissioninformation","diet","vitalsigns","activities","nursing","ivfluids","medications1","medications2","labs","respiratory","diagnostic","consultations");
for(i=0; i<(tabs.length); i++){
selectedTab = tabs[i]+'tab';
if (document.getElementById(selectedTab).className == "selectedtab"){
div = document.getElementById(tabs[i]),
input = div.getElementsByTagName('input'),
selects = div.getElementsByTagName('select');
break;
}
}
highlighted = false;
for (inputIndex = 0; inputIndex < input.length; inputIndex++){
if (input[inputIndex].checked == true){
highlighted = true;
}
}
for (inputIndex = 0; inputIndex < input.length; inputIndex++){
if (input[inputIndex].type == 'text' && input[inputIndex].value != ""){
highlighted = true;
}
}
for (selectIndex = 0; selectIndex < selects.length; selectIndex++){
if (selects[selectIndex].value != ""){
highlighted = true;
}
}
if (highlighted == true){
document.getElementById(selectedTab).style.backgroundColor = "#FF0";
}
else {
document.getElementById(selectedTab).style.backgroundColor = "#F0F0F0";
}
}
以下是调用它的输入:
<input name="cbMedTylenolPO" id="cbMedTylenolPO" type="checkbox" value="PO" onClick="tylenolPoShowHide(); checkBoxHighlight(this, 'MedicationsRow2'); tabModifiedHighlight();" />
此页面有多个“标签”,这些标签只是设置为可见或隐藏的div,具体取决于选择哪一个。它似乎是一致的,因为它可以在任何地方工作,除了2个选项卡,并且这些选项卡上没有任何地方。我能看到的唯一的另一个区别是,那些不工作的区别也是在选项卡中显示或隐藏div,具体取决于是否选中了复选框。我已经在函数的最开头添加了警报以查看它是否正在触发,它在检查复选框时会发生,但在取消选中时则不会。
我希望我明白这一点,任何想法都表示赞赏!
答案 0 :(得分:3)
由于您的代码不仅适用于两个选项卡,而且适用于所有其他选项卡,因此它不是浏览器兼容性问题
onClick
如果选中复选框,则调用这3种方法
tylenolPoShowHide(); checkBoxHighlight(this, 'MedicationsRow2');tabModifiedHighlight()
注意tabModifiedHighlight
是最后一个..
如果前两个方法tylenolPoShowHide
或checkBoxHighlight
中的任何一个失败,则不会调用tabModifiedHighlight
。
我建议在tylenolPoShowHide
和checkBoxHighlight
中添加提醒作为第一行和最后一行......
它可以帮助您找到实际失败的那个,然后您可以在此处添加该代码,我们将能够为您提供进一步的帮助