我有一个下拉列表有几个选项,每个选项都有一个名称属性.当我选择一个选项时,需要出现一个不同的复选框列表 – 当选择另一个选项时,该复选框列表应该消失,另一个将被显示.
我创建了这些复选框列表,并给它们一个与所选选项的name属性相关联的ID.我试图使用以下代码来显示正确的复选框列表
$(document).ready(function(){ $('#band_type_choices').on('change',function() { $('.checkBoxlist').hide(); $('#checkBoxlist_' + $(this).attr("name") ).css("display","block"); });
然而没有发生什么.
这是我的下拉列表选项:
<select id="band_type_choices"> <option vlaue="0"></option> <option value="100" name="acoustic">Acoustic</option> <option value="0" name="jazz">Jazz/Easy Listening</option> <option value="0" name="acoustic_jazz">Acoustic + Jazz/Easy Listening</option> <option value="0" name="party">Party</option> <option value="0" name="acoustic_party">Acoustic + Party</option> <option value="0" name="jazz_party">Jazz/Easy Listening + Party</option> <option value="0" name="acoustic_jazz_party">Acoustic + Jazz/Easy Listening + Party</option> </select>
和其中一个列表的示例:
<div class="checkBoxlist" id="checkBoxlist_acoustic" style="display:none;"> <input type="checkBox" class="checkBox keys" name="keys" value="100" />Keys<br> <input type="checkBox" class="checkBox acou_guit" name="acou_guit" value="100" />Acoustic Guitar<br> <input type="checkBox" class="checkBox drums" name="drums" value="100" />Drums<br> <input type="checkBox" class="checkBox alt_sax" name="alt_sax" value="100" />Alto Sax<br> <input type="checkBox" class="checkBox ten_sax" name="ten_sax" value="100" />Tenor Sax<br> <input type="checkBox" class="checkBox clarinet" name="clarinet" value="100" />Clarinet<br> <input type="checkBox" class="checkBox trombone" name="trombone" value="100" />Trombone<br> <input type="checkBox" class="checkBox trumpet" name="trumpet" value="100" />Trumpet<br> <input type="checkBox" class="checkBox flute" name="flute" value="100" />Flute<br> <input type="checkBox" class="checkBox cello" name="cello" value="100" />Cello<br> <input type="checkBox" class="checkBox violin" name="violin" value="100" />Violin<br> </div>
解决方法
在你的codethis中,指的是select元素不被选中的选项
参考所选的选项,你可以做到这一点 –
$(this).find('option:selected').attr("name");