1

とても単純ですが、なぜ IE が innerHTML の変更やその他の処理を行わないのかわかりません。

    function changeele2() {
        document.getElementById("eleme2");
        document.getElementById("workout");
        document.getElementById("workoutweek");

        if(workout.value == "Yes") { 
            eleme2.style.display = "inline-block";
            workoutweek.className += " requiredField";
        }

    }

ドロップダウンの値を変更すると呼び出されます:

  <select id="workout" onchange="changeele2()">
      <option>No</option>
      <option>Yes</option>
  </select>

テキスト付きのボタンも機能しません

私はそれを見つけることができません。誰かがアイデアを持っていますか?

4

2 に答える 2

5

その場合document.getElementById("eleme2")、その操作の結果を保存し、その要素へのその後のアクセスにそれを使用する必要があります。

function changeele2() {
    var eleme2 = document.getElementById("eleme2");
    var workout = document.getElementById("workout");
    var workoutweek = document.getElementById("workoutweek");

    if (workout.value == "Yes") { 
        eleme2.style.display = "inline-block";
        workoutweek.className += " requiredField";
    }
}

要素 ID と同じ名前でグローバル変数を作成するブラウザーがいくつかあるため、それが機能することがある理由かもしれませんが、それに頼るべきではありません。

于 2013-04-17T22:29:37.720 に答える
1

このスクリプトはまったく機能していないはずです。chrome は ID で要素を検索することでスクリプトを救っています。

次のように変更する必要があります。

function changeele2()
    {
        var eleme2 = document.getElementById("eleme2");
        var workout = document.getElementById("workout");
        var workoutweek = document.getElementById("workoutweek");

        if(workout.value == "Yes") { 
        eleme2.style.display = "inline-block";
        workoutweek.className += " requiredField";

        }
}
于 2013-04-17T22:30:38.650 に答える