드롭 다운 선택을 기반으로 두 가지 양식 요소를 표시하거나 숨기려면 다음 코드가 이미 있습니다. 그것은 ID를 사용하여 페이지에 폼의 단일 인스턴스가있을 때 작동했습니다. 이제 클래스를 사용하는 여러 형식이 있습니다. getElementsByClass
을 시도했지만 어떤 이유로 작동하지 않습니다.자바 스크립트 표시/숨기기 드롭 다운을 기반으로
function Toggle(obj){
var val=obj.value;
if (!obj.m){ obj.m=''; }
if (!obj.m.match(val)){ obj.m+=','+val+','; }
var hide=obj.m.split(',');
for (var zxc0=0;zxc0<hide.length;zxc0++){
if (document.getElementsByClassName(hide[zxc0])){
document.getElementsByClassName(hide[zxc0]).style.display='none';
}
}
var show=val.split(',');
for (var zxc1=0;zxc1<show.length;zxc1++){
if (document.getElementsByClassName(show[zxc1])){
document.getElementsByClassName(show[zxc1]).style.display='';
}
}
}
그리고 HTML : 추천이 드롭 다운에서 선택되는
<form class="contact" name="contact" action="#" method="post">
<label>How did you hear about us:</label>
<div id="styled-select">
<select name="how" onChange="Toggle(this);" class="dropdown">
<option value="Internet Search">Internet Search</option>
<option value="Facebook" >Facebook</option>
<option value="Twitter" >Twitter</option>
<option value="LinkedIN" >LinkedIN</option>
<option value="Referral,Referral2" >Referral</option>
<option value="Other,Other2">Other</option>
</select>
</div>
<label class="Referral" style="display:none;">Referred By:</label>
<input name="Referral2" style="display:none;" class="hidden-txt Referral2">
<label class="Other" style="display:none;">Please Specify:</label>
<input name="Other2" value="" style="display:none;" class="hidden-txt Other2">
...
</form>
이, 라벨 class=Referral
입력 class=Referral2
가 나타납니다 여기
class=Other
및 입력
class=Other2
이 나타나야합니다 (참조는 숨겨야합니다).
코드 삽입을 놓친 경우 – closure
@raghow 죄송합니다. 더 많은 코드로 게시물을 업데이트했습니다. –