首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据jquery中的选择值显示表单字段

根据jquery中的选择值显示表单字段
EN

Stack Overflow用户
提问于 2012-03-31 23:55:48
回答 5查看 2.8K关注 0票数 1

我想显示一个基于初始选择值的类的div id。理想情况下,所有div最初都是隐藏的,只有ID与select下拉列表的类匹配的div才会显示。因此,下面的选择a或D都将显示div ID a。

我当前的代码如下所示:`

代码语言:javascript
复制
<select name="milestone_tag" id="milestone_tag"
  <option value="1" class="a">Selection A
  <option value="2" class="b">Selection B</option>
  <option value="3" class="a-b">Selection C</option>
  <option value="4" class="a">Selection D</option>
</select>
<div id="a">
  <input name="milestone_a" />
</div>
<div id="b">
  <input name="milestone_b" />
<div id="a-b">
  <input name="milestone_a" />
  <input name="milestone_b" />
</div>

$('#milestone_tag').change(function() {
$("#a,#b,#a-b").hide();
$($(this).find('option:selected').attr('class')).show();
});

任何帮助都将不胜感激!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-01 00:05:02

您只传入了option的类名,需要在它前面加上一个选择器类型。在本例中是div的id

你基本上是在需要$('#a').show();的时候做这个$('a').show();

代码语言:javascript
复制
$('#' + $(this).find('option:selected').attr('class')).show();
票数 2
EN

Stack Overflow用户

发布于 2012-04-01 00:09:37

你把#忘在选择器前面了。将您的jQuery代码放入

$(document).ready

代码语言:javascript
复制
   $(document).ready(function () {
        $("#a,#b,#a-b").hide();
        $('#milestone_tag').change(function() {
              $("#a,#b,#a-b").hide();
              var a = "#"+$(this).find('option:selected').attr('class');
              $(a).show();
         });
   });

jSFiddle

票数 2
EN

Stack Overflow用户

发布于 2012-04-01 00:07:28

您需要添加选择器,以便让jQuery知道您希望它是class还是id,因为.attr()不添加选择器,只添加属性的值:

代码语言:javascript
复制
$('.' + $(this).find('option:selected').attr('class')).show();

对于id

代码语言:javascript
复制
$('#' + $(this).find('option:selected').attr('id')).show();

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9957407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档