2013-07-31 2 views
0

값을 선택하면 필드를 숨기거나 표시합니다. 그 뒤에 PHP 코드가 있기 때문에 클래스를 선택해야합니다.드롭 다운 메뉴 선택은 클래스를 통해 필드를 숨 깁니다

필드를 숨기고 표시 할 때 패딩을 다시 추가하는 방법이 있는지 궁금합니다.

"document.getElementsByClassName("className");"을 사용해 보았지만 제대로 작동하지 못했습니다.

는 HTML :

<select id="form" onchange="ChangeDropdowns(this.value);"> 
    <option value="hide">hide</option> 
    <option value="show">show</option> 
</select> 
<input type="text" id="testField" class="testField" /> 

자바 스크립트 : 당신은 하나의 요소가 querySelector를 사용하려는 경우 당신은 잘못 querySelectorAll 기능을 사용하는

function ChangeDropdowns(value) { 
    if (value == "show") { 
     document.getElementById('testField').style.display = 'none'; 
    } else if (value == "hide") { 
     document.getElementById('testField').style.display = 'block'; 
    } 
} 
+0

사용 '으로 조회되지 않는 경우, #는 접두사가, 클래스 .가 이름에 접두어가 적절한 CSS 선택기를 사용하여를 werent document.querySelectorAll (".className")'을 사용하고, 단순히 display를 none으로 설정하고 back을 차단하려면 요소가 block 요소로 시작하지 않는 한 이펙트 패딩을 지정하면 안됩니다. –

+0

html을로드 한 후에 javascript가로드되었는지 확인하십시오. html이 없으면 javascript가로드되어로드되지 않습니다. 작동하지 않습니다. – Bhadra

+0

@PatrickEvans getElementById 대신 document.querySelectorAll (".className")을 사용해 보았지만 여전히 작동하지 않습니다. 블록에서 인라인으로 바꾼다는 사실을 깨닫게했지만 패딩을 수정할 필요가 없습니다. Bhadra 이제 html 뒤에로드 할 스크립트를 설정했지만 여전히 운이 없다! – Switchfire

답변

1

, 그것은 요소의 배열을 반환 이 경우에는 원하는 것처럼 보입니다.

HTML

<input type="text" id="testField" class="testField2"/> 

JS

//Uses class, a period needs to be before the class name, when selecting by class 
document.querySelector(".testField2").style.display='none'; 

//Uses id, a # needs to be before the id name, when selecting by id 
document.querySelector("#testField").style.display='none'; 

당신이 그런

var elements = document.querySelectorAll(".testField"); 
elements[0].style.display='none'; 

귀하의 바이올린으로 액세스 할 수 있도록이, 배열을 반환합니다 querySelectorAll를 사용하여 쿠데타를 일으켰다. 르 오류 : onchange를에

  1. 함수 이름은 실제 함수 이름이 onLoad이 너무 함수 않네는 전역 범위에서 선언되고 제작 된 랩, 선택했다

  2. 일치 didnt한다.

  3. 당신은 ID가 이름 앞에 어떤 기간 또는 #이 이름이 요소 태그 이름
+0

건배 패트릭이 당신의 별이되었습니다! 이 게시물을 통해 지금은 제대로 작동하고 있습니다. 나는 querySelectorAll을 사용하고 있다는 사실을 놓쳤을뿐만 아니라 마침표도 없었다. 다시 한 번 감사드립니다! – Switchfire

관련 문제