2

まず、私は 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を表示または非表示にしていることです。関数の最初にアラートを追加して、発火しているかどうかを確認しました。チェックボックスをオンにしたときは発生しますが、チェックを外したときは発生しません。

私はこれを明確にしたことを願っています。

4

1 に答える 1

3

あなたのコードは 2 つのタブでしか機能せず、他のすべてのタブで機能するため、ブラウザーの互換性の問題ではありません。
onClickチェックボックスの場合、これら3つのメソッドを呼び出しています tylenolPoShowHide(); checkBoxHighlight(this, 'MedicationsRow2');tabModifiedHighlight()

tabModifiedHighlightは最後のものです..

最初の 2 つのメソッドのtylenolPoShowHideいずれかまたはcheckBoxHighlight失敗した場合tabModifiedHighlightは、呼び出されません。

両方の最初と最後の行としてアラートを追加することをお勧めしtylenolPoShowHideますcheckBoxHighlight...

どれが実際に失敗しているかを見つけるのに役立ちます。そのコードをここに追加してください。さらに支援することができます

于 2013-05-13T14:47:17.130 に答える