私はjavascriptと一緒に「選択」リストを使おうとしています。HTMLコードの一部を非表示または表示するJavascript関数を実行しましたが、逆の方法で機能しており、どこが間違っているのかわかりません。コードは単純なようです。
私のJS機能は
<script type="text/javascript" language="javascript">
function toggle(id) {
if(document.getElementById(id).value=='IELTS' || document.getElementById(id).value=='TOEFL')
{
if(document.getElementById('dv1').style.display=='block')
{
document.getElementById('dv1').style.display='none';
document.getElementById('dv1').style.visibility='hidden';
}
}
else
{
document.getElementById('dv1').style.display='block';
document.getElementById('dv1').style.visibility='visible';
//alert('Its displaying now');
}
if(document.getElementById(id).value=='Other')
{
if(document.getElementById('dv2').style.display=='block')
{
document.getElementById('dv2').style.display='none';
document.getElementById('dv2').style.visibility='hidden';
}
}
else
{
document.getElementById('dv2').style.display='block';
document.getElementById('dv2').style.visibility='visible';
}
if(document.getElementById(id).value=='none')
{
document.getElementById('dv1').style.display='none';
document.getElementById('dv1').style.visibility='hidden';
document.getElementById('dv2').style.display='none';
document.getElementById('dv2').style.visibility='hidden';
}
}
</script>
問題は、最初の「if」ステートメントが「dv1」の代わりに「dv2」を表示/非表示にし、2番目の「if」ステートメントが「dv2」の代わりに「dv1」を表示/非表示にすることです。最初の「if」ステートメントは「dv1」を処理し、2番目の「if」ステートメントは「dv2」を処理します
JSがどのように機能するかを理解する方法に何かが欠けていますか?
ここでは、HTMLコードを非表示にするためのスタイルが事前定義されています
<style type="text/css">
.toggleClass{
display:none;
visibility:hidden;
}
</style>
</head>
<body>
<form name="myform" >
これは、変更時にJS関数を呼び出した場所の選択です
<select id="exam" name="exam" onchange="toggle('exam')">
<option selected="selected" value="none" >Please Choose</option>
<option value="IELTS">IELTS</option>
<option value="TOEFL">TOEFL</option>
<option value="Other">Other</option>
</select>
<br><br>
これはdv1です
<div id="dv1" class="toggleClass">
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="600" bgcolor="#CCCCCC">IELTS and TOEFL</td>
</tr>
</table>
</div>
これはdv2です
<div id="dv2" class="toggleClass">
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="600" bgcolor="#CCCCCC">Other</td>
</tr>
</table>
</div>
</form>
</body>
</html>
「dv1」と「dv2」を入れ替えれば正常に動作することに注意してください。