1

2つの変更を実行するJavaScriptがあります".getElementById('').style"。どちらもFFでは完全に機能しますが、最初の1つはIE7では機能しません。

すべての助けに感謝します:)

最初のソースコード:

function ingen() {
    document.getElementById('merInfo1').style.display='none';
    document.getElementById('merInfo2').style.display='none';
    document.getElementById('merInfo3').style.display='none';
    document.getElementById('merInfo4').style.display='none';
    document.getElementById('merInfo5').style.display='none';
    document.getElementById('merInfo6').style.display='none';
    document.getElementById('merInfo7').style.display='none';
}

HTML:

<span class="enkeltSkjema" id="avtaleInput">
    <select name="radio1" id="radio1">
        <option value="1" onClick="ingen()">lorem</option>
        <option value="2" onClick="some()">lorem</option>                                  
        <option value="3" onClick="other()">lorem</option>
        <option value="4" onClick="func()">lorem</option>
        <option value="5" onClick="tion()">lorem</option>
        <option value="6" onClick="names()">lorem</option>
        <option value="7" onClick="goes()">lorem</option>
        <option value="8" onClick="here()">lorem</option>
    </select>
</span>                          
<span class="enkeltSkjema" id="merInfo">
    <span id="merInfo1" name="merInfo1"></span>
    <span id="merInfo2" name="merInfo2"></span>
    <span id="merInfo3" name="merInfo3"></span>
    <span id="merInfo4" name="merInfo4"></span>
    <span id="merInfo5" name="merInfo5"></span>
    <span id="merInfo6" name="merInfo6"></span>
    <span id="merInfo7" name="merInfo7"></span>
</span>

次に、IEで正常に動作します。

function levAdresse() {
    if (document.getElementById('egenLevAdr').checked == true) {
        document.getElementById('levAdrBox').style.display='block';
    }   
    else {
        document.getElementById('levAdrBox').style.display='none';
    }
}

HTML:

<div id="levAdrBox">
    <div id="levAdr">Field
        <span class="" id="levAdrInput"><input type="text" id="text12" name="text12" /></span>
    </div>
    <div class="" id="levPostSted"> field:*
        <span class="" id="levPostStedInput">
            <input type="text" id="text18" name="text18" />
            <span class="" id="levPostNr">field:*
                <span class="" id="levPostNrInput">
                    <input type="text" id="text17" name="text17" />
                </span>
            </span>
        </span>
    </div>
</div>
4

4 に答える 4

4

うーん... SELECT で "OnChange()" を使用し、 OPTION で "OnClick" を使用しない場合はどうでしょうか。

<select name="radio1" id="radio1" onChange="ingen(this.value)">
        <option value="1">lorem</option>
        <option value="2">lorem</option>                                  
        <option value="3">lorem</option>
        <option value="4">lorem</option>
        <option value="5">lorem</option>
        <option value="6">lorem</option>
        <option value="7">lorem</option>
        <option value="8">lorem</option>
</select>

ingen(何か) で条件を実行するか、渡された値に関連して他の関数を呼び出します... ?

于 2009-02-20T18:18:33.193 に答える
2

ページ上に「name」属性が次のように設定されている他の要素がありますか。

merInfo1
merInfo2
merInfo3
merInfo4
merInfo5
merInfo6
merInfo7

(いずれの場合も:たとえば、MerInfo1、merinfo1、MERinfo1はすべてIEで同じです)

もしそうなら、それはバグです。IEは名前をIDと同じと見なします(これは明らかにバグです)

于 2009-02-20T17:42:37.553 に答える
2

DOM が完全に構築される前に ingen() 関数を呼び出している可能性はありますか?

于 2009-02-20T17:32:36.983 に答える
0

オプション/可能性がある場合は、jQueryを使用して、ブラウザー間の非互換性(のほとんど)を取り除きます。

function ingen() {
  $("#merInfo span").css("display", "none");
}

$(document).ready(function() {
  $("#egenLevAdr").click(function() { $("#levAdrBox").toggle(); });
});
于 2009-02-20T17:37:52.727 に答える