HTML表单根据选择切换隐藏/显示字段
在我的表格上(如下所示)我有一套收音机选项。 如果用户选择“其他”的最后一个选项,我希望div显示并向下滑动,他们可以在文本框中输入自定义值。 我还希望能够以相同的forms多次使用同一个进程的多个实例(显然具有不同的ID)。
以下是它的设置方式:如果用户选择的单选按钮是“color_toggle”且值等于“Other”,我希望它显示元素id“specify_color_box”。 如果他们选择不同的单选按钮,我希望隐藏相同的元素。
这是答案,以防万一其他人有同样的问题。 我的表单元素如下所示:
我的jQuery显示在这里:
$(document).ready(function(){ $("input[name='color']").click(function(){ if($(this).val() == "Other") { $("#specify_color_box").slideDown("fast"); } else{ $("#specify_color_box").slideUp("fast"); } }); });
您可以检查单选按钮的选中状态,如下所示:
$('#Other').is(':checked')
这样,您甚至不必依赖单选按钮的值 – 您可以决定根据任何原因更改它 – 只是它的状态。
注意:如果您的元素有ID,请使用它来选择它,这是最快的方法。 选择器越复杂,选择越慢!
应用于您的代码,它提供以下内容(反转slideUp / slideDown以正确匹配条件):
$(document).ready(function() { $("#specify_color_box").css("display", "none"); $(".color_toggle").click(function() { if ($('#other_color').is(':checked')) { $("#specify_color_box").slideDown("fast"); } else { $("#specify_color_box").slideUp("fast"); } }); });
DEMO
这是答案,以防万一其他人有同样的问题。 我的表单元素如下所示:
我的jQuery显示在这里:
$(document).ready(function(){ $("input[name='color']").click(function(){ if($(this).val() == "Other") { $("#specify_color_box").slideDown("fast"); } else{ $("#specify_color_box").slideUp("fast"); } }); });