私は、最後に選択した項目を表示/非表示にする機能と連鎖ドロップダウンリストを組み合わせようとしています。私は研究し、両方を個別に行う方法を見つけましたが、javascript(私は確かにデザイナーの方が多い)を組み合わせることになると、壁に打ち勝っています。私はこれで私を助けてくれる人に感謝します。ディビジョンを表示/非表示にするJavaScriptの連鎖ドロップダウンリスト?
これは私がうまくいきたいです:ユーザーはドロップダウンリスト1から選択します。ドロップダウンリスト2のオプションは、1の選択に基づいて表示されます。ユーザーはドロップダウンリスト2から選択し、適切なdivが表示されます。
ここで私はdivの表示/非表示にするにはJavascriptを使用しています。ここでは
function showDiv(divID)
{
var div = document.getElementById(divID);
div.style.display = ""; //display div
}
function hideDiv(divID)
{
var div = document.getElementById(divID);
div.style.display = "none"; // hide
}
function hideAllDivs()
{
//Loop through the seclect menu values and hide all
var courseSelect = document.getElementById("courseSelect");
for (var i=0; i<=courseSelect.options.length -1; i++)
{
hideDiv(courseSelect.options[i].value);
}
}
function toggle(showID){
hideAllDivs(); // Hide all
showDiv(showID); // Show the one we asked for
}
をだチェーンドロップダウンリストのためのJavascript:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript" defer>
function cascadeSelect(parent, child){
var childOptions = child.find('option:not(.static)');
child.data('options',childOptions);
parent.change(function(){
childOptions.remove();
child
.append(child.data('options').filter('.sub_' + this.value))
.change();
})
childOptions.not('.static, .sub_' + parent.val()).remove();
}
$(function(){
cascadeForm = $('.cascadeTest');
deptartmentSelect = cascadeForm.find('.deptartmentSelect');
courseSelect = cascadeForm.find('.courseSelect');
cascadeSelect(deptartmentSelect, courseSelect);
});
そして最後に、私のHTML(簡体字)
<form action="#" class="cascadeTest">
<table>
<tr>
<th>Organization:</th>
<td><select name="deptartmentSelect" class="deptartmentSelect">
<option value="0">Select a Department</option>
<option value="1">Dept A</option>
<option value="2">Dept B</option>
<option value="3">Dept C</option>
</select></td>
</tr>
<tr>
<th>Territory:</th>
<td><select name="courseSelect" class="courseSelect" onChange="toggle(this.options[this.options.selectedIndex].value)">
<option value="0" class="static">- Courses -</option>
<option value="A1" class="sub_1">Course A1</option>
<option value="B1" class="sub_2">Course B1</option>
<option value="C1" class="sub_3">Course C1</option>
</select></td>
</tr>
</table>
</form>
<div id="A1" style="display:none;">I am Course A1</div>
<div id="B1" style="display:none;">I am Course B1</div>
<div id="C1" style="display:none;">I am Course C1</div>
おはようございます!
これは美しく機能します。なぜ私はそれを持っていたとして働いていなかった、正しいコードのために説明する時間をとってくれてありがとう - 私は本当にそれを感謝します! – Nicole
ようこそ。将来、デザイナーかどうかを覚えておいて、jQueryはあなたの友人です。 javascriptでやりたいことは、jQueryを使ってもっと簡単に行うことができます。 – danludwig
もう一度ありがとう - 私はjQueryを学ぶ任務に就いています。フランケンシュタインのコードがなぜ以前にはうまくいかなかったのか理解できたらうれしいです。 他の人がこれを読んでいる場合は、フォームを消去するボタンを追加しました。 – Nicole