2014-04-07 4 views
-2

왜이 쉬운 자바 스크립트가 작동하지 않는지 아십니까? 그것은 작동합니다 Firefox, Chrome은 IE Safari 및 Opera에서 작동하지 않습니다. 도와 주시겠습니까? IE, Safari 및 Opera에서 document.getElementById에 문제가있는 것 같습니다. 왜?javascript document.getElementById가 작동하지 않습니다.

<form name="formular" action="test.php"> 
     <select id="testMenu" name="testMenu" onChange="testOptions()"> 
     <option id="X2" value="2">2</option> 
     <option id="X3" value="3" selected>3</option> 
     <option id="X4" value="4">4</option>       
     </select>  

     <select id="nextMenu" name="nextMenu"> 
     <option id="B1" value="1">B1</option> 
     <option id="B2" value="2">B2</option> 
     </select> 
    </form> 
    <script type="text/javascript"> 
     var choose_option =3; 

     function testOptions() { 
     var choose_option = document.getElementById("testMenu").selectedIndex+2; 

     if (choose_option == 4){ 
      document.getElementById("B2").style.display="none"; 
     }else{ 
      document.getElementById("B2").style.display="block"; 
     } 
    } 
    </script> 
+0

? 콘솔에 오류가 있습니까? – tymeJV

+0

오류 없음 ... 이상합니다.하지만 http://www.maxibet.net/test.php를 시도해보십시오 - 첫 번째 선택에서 4 번을 선택하면 두 번째 선택에서 단 하나의 옵션 – jvku

+2

부적절한 디버깅이 있어야합니다. shoudl은'document.getElementById ("B2")'가'.style.display = value.'를 사용하는 것과 별개로 작동 하는지를 먼저 확인했습니다. 올바르게 작동합니다. –

답변

3

getElementById이 왜 효과적이지 않다고 생각하십니까? 문제는 display: none<option> 요소에 적용 할 수 없다는 것입니다. 당신은 정말,이 작업이 될 것이다 사라질하려면 제거하여

document.getElementById("B2").disabled = choose_option === 4; 

: 가장 쉬운 수정은 아마 그것을 위해 disabled을 설정하는 것입니다 어떻게됩니까

var nextMenu = document.getElementById("nextMenu"); 
var b2 = document.getElementById("B2"); 

function testOptions() { 
    var choose_option = document.getElementById("testMenu").selectedIndex + 2; 

    if (choose_option === 4) { 
     if (b2.parentNode) { 
      b2.parentNode.removeChild(b2); 
     } 
    } else if (!b2.parentNode) { 
     nextMenu.appendChild(b2); 
    } 
} 
+0

이것은 옳습니다. CSS에서 '

+0

감사합니다, 사용 안함은 좋은 생각이지만이 상황에서는 아닙니다 ... 숨기기 만하면 안됩니다 ... 사용을 제거해야합니다.하지만 숨기기는 더 쉽습니다 - 제거 할 가능성이 없다면 사용합니다. – jvku

+0

minitech을 (를) 숨기기로 해결했습니다. 제거를 시도했으며 IE를 제외한 각 브라우저에서 작동하기 시작했습니다. 왜 그런지 알아? IE에 대한 해결책이 있습니까? – jvku