2013-05-19 2 views
2

이 매우 간단한 JavaScript를 사용하여 선택한 옵션을 범위에 표시했습니다. IE8을 제외한 모든 브라우저에서 정상적으로 작동합니다.JavaScript : IE8에서 getElementById가 작동하지 않습니다.

코드 -

<select onchange="searchdisplay(this.value)"> 
<option>kill</option> 
<option>bill</option> 
<option>by</option> 
<option>torentino</option> 
<option>is </option> 
<option>not </option> 
<option>good</option> 
<Select> 

<span id="container"> 
<span> 

스크립트 -

<script> 
function searchdisplay(val) 
{ 
    var div = document.getElementById('container'); 
    div.innerHTML = val; 
} 
</script> 

이에 대한 모든 솔루션? 감사.

<select onchange="searchdisplay(this.options[this.selectedIndex].value)">하고 잘 작동된다 : -

+0

IE8이 너무 부서지기 때문에'var div '의 이름을 다른 것으로 바꿔서 고칠 수 있습니다 (예 :'var div2'). 'getElementById' 사용법이 올바른 것 같습니다. – techfoobar

+0

DOM 준비 후 스크립트를 실행합니까? – Sergio

+0

두 번째 ''태그는 ''입니까? @Sergio이 함수는''에있는 옵션을 매우 빠르게 반응시켜야합니다 (함수가 이미 파싱되었다고 가정 할 때) . – ajp15243

답변

1

문제로 변경 IE8에 this.value 함께. 다른 사람들이 코멘트에 말했듯이 현재 코드

에서

Demo

도 마크 업을 수정합니다.

<select onchange="searchdisplay(this.options[this.selectedIndex].value)"> 
    <option>kill</option> 
    <option>bill</option> 
    <option>by</option> 
    <option>torentino</option> 
    <option>is</option> 
    <option>not</option> 
    <option>good</option> 
</select> 
<span id="container"></span> 

이상적인 방법은 선택 옵션에 value 속성을 추가하는 것입니다. 아마도 작동하도록 보장 된 this.value을 수행하십시오.

+1

+1 내 의견의 JSBin 예제를 IE8에서 확인했지만 완벽하게 작동합니다. – ajp15243

+1

완벽하게 작동합니다. 고맙습니다! –

1

스크립트 .. 당신의 value 속성이 존재하지 않는 그것은 단지,

는 내가 그것을 실종 때 다른 브라우저가 있습니다 .. "값"속성을 찾고 옵션의 텍스트를 사용하지 않는 작업 추측 않습니다 하지만 IE8이

는 각 옵션에 값 속성을 추가 .. 필요 않으며는 IE8의 이벤트 처리에 대해

<select onchange="searchdisplay(this.value)"> 
<option value="kill">kill</option> 
<option value="bill">bill</option> 
<option value="by">by</option> 
<option value="torentino">torentino</option> 
<option value="is ">is </option> 
<option value="not ">not </option> 
<option value="good">good</option> 
</select> 
+0

이것은 또한 나를 위해 일했습니다. – ajp15243

+0

이것은 잘 작동합니다. 고맙습니다 –

0

This page 구체적으로 확인 될 것이라고 말했습니다 :

대신 이벤트 당 지역 개체로,

  1. 그냥 하나의 글로벌 이벤트 객체 :

    마이크로 소프트의 이벤트 처리는 더 심각한 의 일부가 결점으로 가득합니다.

  2. attachEvent 메서드를 사용할 때 함수를 처리 할 때 this 키워드는 window 객체를 참조하며 실제로는 HTML 이벤트가 아닌 해당 함수를 참조합니다.

  3. 캡처 단계가 지원되지 않습니다. 문제가되는 이벤트의 접두사가 "on" 인 다른 구문

항목 2는 onchangethiswindow하지 클릭 된 요소가 될 것이라고 나에게 의미한다.IE8에서 로그 또는 더 나은이를 확인하려면 searchDisplay

에 다음 코드를 전달 된 값 경고 :

<script type="text/javascript"> 

function getOption(e) { 
    var event = e|window.event; 
     alert(event.srcElement.innerHTML); // works in IE but shows the select object 
     alert(event.target.innerHTML); // works well in FF, shows the right option 
} 

</script> 

<body oncontextmenu="return false;"> 
<select size="4" oncontextmenu="getOption(event)"> 
    <option value="1"> option1 </option> 
    <option value="2"> option2 </option> 
</select> 
</body> 

당신을 도울 수를, 선택과 매우 비슷한 상황을 해결하기 위해 here을 게시됩니다.

관련 문제