ドロップダウンに基づく条件付きショー要素私は2番目のドロップダウンリストの内容は、最初の1で行った選択に依存している、二つの関連ドロップダウンリストを持っています。たとえば、次のHTMLコードでは、まずアプリケーションメソッドを選択します。アプリケーション方法として空中を選択した場合は、空中サイズdistなどのさらなる質問に答えます。それ以外の場合は、地面スプレータイプに答える必要があります。jQueryの:ボックス選択
ので、Webページがロードされると、二つの第二レベルのドロップダウンリストは、(空中サイズDIST。、および地上スプレータイプが。)隠されています。これらは、最初の選択肢(適用方法)で関連選択が行われた場合にのみ表示されます。
私は(jQueryのコードの下)にjQueryでこの機能を実現することができています。しかし、私のアプローチはかなり愚かです。私の質問は次のとおりです。
行全体を選択する方法は、その配列を数える使用せず、あり(n番目の子())?要素IDの選択に基づいて行全体を選択できますか?たとえば、最初に$( '#id_A')を選択してから、選択内容を行全体に展開できますか?
すべての可能な選択肢(($(this).val()== "X"))を比較するのではなく、この非表示または表示機能を実現するより良い方法がありますか?
ありがとう!ここで
は、HTMLコードで、フォームがジャンゴによって生成されます。ここでは
<div class="articles">
<form method="GET" action=_output.html>
<table align="center">
<tr><th><label for="id_application_method">Application method:</label></th><td><select name="application_method" id="id_application_method">
<option value="">Pick first</option>
<option value="A">Aerial</option>
<option value="B">Ground</option>
</select></td></tr>
<tr><th><label for="id_A">Aerial Size Dist:</label></th><td><select name="aerial_size_dist" id="id_A">
<option value="A1" selected="selected">A1</option>
<option value="A2">A2</option>
</select></td></tr>
<tr><th><label for="id_B">Ground spray type:</label></th><td><select name="ground_spray_type" id="id_B">
<option value="B1" selected="selected">B1</option>
<option value="B2">B2</option>
</select></td></tr>
</table>
</form>
</div>
は、jQueryのコードです:
<script type="text/javascript" src=" https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
<script>$(function() {
$("tr:nth-child(2)").hide();
$("tr:nth-child(3)").hide();
$('#id_application_method').change(function() {
($(this).val() == "A") ?
$("tr:nth-child(2)").show() : $("tr:nth-child(2)").hide();
($(this).val() == "B") ?
$("tr:nth-child(3)").show() : $("tr:nth-child(3)").hide();
});});</script>
素晴らしいソリューションをありがとう! –
2つの回答をお勧めしますか? –
1つの回答のみ受け入れることができます。時には複数の良い反応があります。自分の問題に最も役立つものを受け入れ、他の有益な回答にアップヴォートを与えてください。それは感謝を示し、他者にも役立つことを示します。どういたしまして。 :-) –