【发布时间】:2014-05-05 03:41:37
【问题描述】:
拳头,让我说我最近才开始使用 js/jquery(比如 2 周前),我一直在努力让以下所有技巧一起玩得很好——非常感谢任何帮助。
我有一个表格,用户可以在里面为一个班级注册多个人;在每个注册者的“块”内,存在两个单选按钮。选择一个应该显示一组类选项,选择另一个应该显示第二组选项:
HTML:
<label for="name" class="label_heading">Registrant Name (first and last)</label>
<input type="text" id="name_1" value="name_1">
<br>
<p class="label_heading">Training Level:</p>
<label for="certification">
<input type="radio" name="ClassLevel" value="certification" id="select-certification" class="select-certification">Certification
<select class="copy hidden" name="cert" id="cert1">
<option value="">Select a Certification Session</option>
<option value="session1cert">Fort Dodge, IA May 5-9, 2014</option>
<option value="session2cert">North Platte, NE Sept 22-26, 2014</option>
<option value="session3cert">Omaha, NE Oct 13-17, 2014</option>
<option value="session4cert">Waterloo, IA Oct 27-31, 2014</option>
<option value="session5cert">Grand Island, NE Nov 17-21, 2014</option>
</select>
</label>
<!--end label for certification-->
<label for="recertification">
<input type="radio" name="ClassLevel" value="recertification" id="select-recertification" class="select-recertification">Recertification
<select class="copy hidden" name="recert" id="recert1">
<option value="">Select a Recertification Session</option>
<option value="session1recert">Fort Dodge, IA May 8, 2014</option>
<option value="session2recert">North Platte, NE Sept 25, 2014</option>
<option value="session3recert">Omaha, NE Oct 16, 2014</option>
<option value="session4recert">Waterloo, IA Oct 30, 2014</option>
<option value="session5recert">Grand Island, NE Nov 20, 2014</option>
</select>
</label>
因此,值为“certification”的单选按钮需要显示名称为“cert”的选择,选择“recertification”应该会显示选择“recert”。因为我在页面上多次重复此用户注册块,并且每个都需要以相同的方式运行,所以我选择在我的 jQuery 中使用类和 input["name:"] 作为选择器,如下所示:
$(document).ready(function () {
$(".addReg").click(function (e) {
$(".tbr_fieldset:hidden").slice($(".tbr_fieldset:hidden").siblings(":first").index(), 1).slideDown();
e.preventDefault();
});
});
$(document).ready(function () {
$("input[name='ClassLevel']").change(function (e) {
$(this).next(":first").toggle();
e.preventDefault();
});
});
这几乎有效。如果您在此http://jsfiddle.net/shark_goatshark/Aktwu/1/ 中查看它,您会看到单击 + 按钮时我的“注册人”框会增加,而单选按钮确实会显示正确/对应的下拉列表。问题是一旦点击它们就不会重新隐藏。如果我点击“认证”并使其下拉菜单出现,然后改变主意并点击“重新认证”,重新认证下拉菜单会出现,但认证不会消失。
我知道必须有一个更优雅的解决方案,但我不知所措。感谢所有输入!
【问题讨论】:
标签: jquery forms radio-button show-hide