【问题标题】:Display next div only if user select radio button on current div仅当用户在当前 div 上选择单选按钮时才显示下一个 div
【发布时间】:2019-08-12 23:15:41
【问题描述】:


只有当用户从当前 div 中选择一个单选按钮时,我才需要向用户显示下一个 div...让我解释一下:

<h1>First question</h1>
<input type="radio" id="2" value="Dog">Dog<br>
<input type="radio" id="2" value="Cat">Cat<br>
<br>
<div id='2div'><h1>Second question</h1>
<input type="radio" id="3" value="Blue">Blue<br>
<input type="radio" id="3" value="Green">Green<br>
</div>

(我有类似 39 div 的东西)

只有当用户选择 div1 上的两个单选按钮之一时,我才需要显示 div2。

我试过了:

$(文档).ready(函数 () { $('div').hide(); $("input[type=radio]").change(function() { $( '#' + $(this).attr('id') + 'div' ).show(); $('div:not(#' + $(this).attr('id') + 'tab)' ).hide(); }); });

但是不工作...

我该怎么做? 谢谢

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

主要问题似乎是&lt;div&gt; 被显示,然后又立即被隐藏。

例如,显示#2div
但也不是#2tab,所以被隐藏了。

还要注意 HTML 中的 IDs must be unique
考虑改用data attribute
jQuery's data()

$(function() {

  $("input[type=radio]").change(function() {

    var id = $(this).data('id');
    $('#' + id + 'div').show();
    //$('div:not(#' + id + 'tab)').hide();

  });

});
div {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h1>First question</h1>
<input type="radio" name="animal" data-id="2" value="Dog">Dog<br>
<input type="radio" name="animal" data-id="2" value="Cat">Cat<br>
<br>
<div id="2div">
  <h1>Second question</h1>
  <input type="radio" name="color" data-id="3" value="Blue">Blue<br>
  <input type="radio" name="color" data-id="3" value="Green">Green<br>
</div>
<div id="3div">
  <h1>Third question</h1>
  <input type="radio" name="shape" data-id="4" value="Blue">Round<br>
  <input type="radio" name="shape" data-id="4" value="Green">Square<br>
</div>

【讨论】:

  • 如果您有第三个问题,我们如何才能只显示第二个已检查?
  • 您的意思是选择了三个单选按钮中的第二个吗?还是您的意思是基于第二个问题的选择的第三个问题?
  • 如果您指的是第三个问题,并且当您更改第一个问题的选择时会发生什么,这听起来像是一个不同的主题。但这里是one possible method。对于更强大的解决方案,我可能会使用 AJAX 将选择发送到服务器端脚本并返回要显示的适当问题。
  • 我选择了第一个问题,然后显示了第二个问题,如果选择了第二个问题,则应该显示第三个问题,依此类推..
  • 我编辑了答案以演示第三个问题。
猜你喜欢
  • 2022-01-16
  • 2014-02-06
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
相关资源
最近更新 更多