2016-05-01 15 views
1

インターネットを検索しました。これを行う方法を学びました。それを実装しました。しかし、それは動作しません。 生徒が選択されたときにdivの生徒を表示し、先生が選択されたときにdivの教師を表示します。これはjspファイルの一部です。divを表示/非表示javascriptの選択肢に応じて

HTMLコード:

<table> 
    <tr> 
     <td> 
     <select id="userType"> 
      <option value="student">STUDENT</option> 
      <option value="teacher">TEACHER</option> 
      <option value="admin">ADMIN</option> 
     </select> 
     </td> 
    </tr> 
<table> 

Javascriptのコード:私は朝からこの権利を取得しようとしてきた

<script type="text/javascript"> 

    var elem = document.getElementById('userType'); 
    elem.onchange = function() { 
     var studentDiv = document.getElementById('student'); 
     var teacherDiv = document.getElementById('teacher'); 
     studentDiv.style.display = (this.value.equals("student")) ? 'block':'none'; 
     teacherDiv.style.display = (this.value.equals("teacher")) ? 'block':'none'; 
    }; 

</script> 

。他の方法も試しました。何も動作しません。私は間違って何をしていますか?あなたのコード内で==

JSFIDDLE

<script type="text/javascript"> 

    var elem = document.getElementById('userType'); 
    elem.onchange = function() { 
     var studentDiv = document.getElementById('student'); 
     var teacherDiv = document.getElementById('teacher'); 
     studentDiv.style.display = this.options[this.selectedIndex].value == "student" ? 'block':'none'; 
     teacherDiv.style.display = this.options[this.selectedIndex].value == "teacher" ? 'block':'none'; 
    }; 

</script> 
+0

https://jsfiddle.net/q9Lx2ffn/ – Ashraf

+0

解決策にはいくつか問題があり、コンソールにエラーが表示されています。これらをブラウザの開発者ツールでデバッグします。それはどのようにこれを行うのかを学ぶ方法です。 –

答えて

0

あなたは以下のように選択されたオプションの値を得ることができますこの

studentDiv.style.display = (this.value==="student") ? 'block':'none'; 
teacherDiv.style.display = (this.value==="teacher") ? 'block':'none'; 
2

変更equals、それはDEMO

var elem = document.getElementById('userType'); 
elem.onchange = function() { 
    var studentDiv = document.getElementById('student'); 
    var teacherDiv = document.getElementById('teacher'); 
    studentDiv.style.display = (this.value == "student") ? 'block' : 'none'; 
    teacherDiv.style.display = (this.value == "teacher") ? 'block' : 'none'; 
}; 
+0

答えにスニペットを含めることができるときにjsfiddleを使う理由9_9 – Sumurai8

+0

私もこれを試しました。そしてはい、それはjfiddleで動作します。それはどこでもうまくいくはずです。しかし、いくつかの非常に奇妙な理由で、これは私のコンピュータ上で動作しません。私は理由を知りません。 FirefoxとChromeの両方でファイルを開こうとしました。スタイル表示がnoneに設定されている場合、選択を変更しても何も表示されません。スタイル属性を削除すると、異なるオプションを選択しても、先生と生徒の両方が表示されます。これは意味がありません。コードが機能するはずです。これは決して起こらない。 –

+0

あなたのjsコードが別々のファイルにある場合は、正しく '' HTML'コードで試してみてください。https://jsfiddle.net/Lg0wyt9u/721/ –

0

試して動作します:

0

2つの問題がすぐに飛び出し:あなたが定義されたIDを持っていない項目を選択しようとしている

。 element valueプロパティに存在しない ".value"を呼び出しています。

これらのエラーは、お使いのブラウザの開発者ツールに報告されます。それらを使用してください。

関連する問題