如何显示基于前一个单选按钮的一组单选按钮


How to show set of Radio buttons based on a previous Radio Button

我有一个带有单选按钮的表单。当用户选择"不适合"时,我希望他们继续从第二组单选按钮中指出原因。在他们点击"不适合"单选按钮之前,我不希望这些原因被显示出来。

如何在JavaScript或jQuery中完成此操作?

这是我的代码,抱歉设计

<div class="col-xs-7">
<input type="radio" name="res" <?php if (isset($res) && $res=="Fit") echo "checked";?> value="Fit">Fit
			<br>
<input type="radio" name="res" <?php if (isset($res) && $res=="Unfit") echo "checked";?> value="Unfit">Unfit
			<br>
	<input type="radio" name="res" <?php if (isset($res) && $res=="all") echo "checked";?>value="all">All
		</div>
	<div class="col-xs-3">
		</div>
		</div>
	<div class="col-lg-6">
		</div>
		</div>
<h4>Reason for being unfit</h4>
	<hr>
  <div class="row">
<div class="col-lg-6">
<div class="col-xs-2">
</div>
<div class="col-xs-7">
	<input type="radio" name="ru" <?php if (isset($ru) && $ru=="Tuberculosis") echo "checked";?> value="Tuberculosis">Tuberculosis
	br>
	<input type="radio" name="ru" <?php if (isset($ru) && $ru=="Pneumonia") echo "checked";?> value="Pneumonia">Pneumonia
			<br>
	<input type="radio" name="ru" <?php if (isset($ru) && $ru=="all") echo "checked";?>value="All">All
	</div>
	<div class="col-xs-3">
		</div>
		</div>
	<div class="col-lg-6">
	</div>
	</div>

试试下面的

你可以通过列表到每个单选按钮的点击事件,然后找到特定单选框的id,并检查它是否等于无线电不适合。然后,我们将显示下一个单选按钮集

$(document).ready(function() {
  
  $("#unfit-reason").hide();
  // when you click the radio check whether that is radio-unfit
  $("input[name=res]").click(function() {
    if ($(this).attr("id") == "radio-unfit") {
      $("#unfit-reason").show();
    } else {
      $("#unfit-reason").hide();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="col-xs-7">
  <input type="radio" name="res" <?php if (isset($res) && $res=="Fit" ) echo "checked";?>value="Fit">Fit
  <br>
  <input id="radio-unfit" type="radio" name="res" <?php if (isset($res) && $res=="Unfit" ) echo "checked";?>value="Unfit">Unfit
  <br>
  <input type="radio" name="res" <?php if (isset($res) && $res=="all" ) echo "checked";?>value="all">All
</div>
<div class="col-xs-3">
</div>
</div>
<div class="col-lg-6">
</div>
</div>
<div id='unfit-reason'>
  <h4>Reason for being unfit</h4>
  <hr>
  <div class="row">
    <div class="col-lg-6">
      <div class="col-xs-2">
      </div>
      <div class="col-xs-7">
        <input type="radio" name="ru" <?php if (isset($ru) && $ru=="Tuberculosis" ) echo "checked";?>value="Tuberculosis">Tuberculosis br>
        <input type="radio" name="ru" <?php if (isset($ru) && $ru=="Pneumonia" ) echo "checked";?>value="Pneumonia">Pneumonia
        <br>
        <input type="radio" name="ru" <?php if (isset($ru) && $ru=="all" ) echo "checked";?>value="All">All
      </div>
      <div class="col-xs-3">
      </div>
    </div>
    <div class="col-lg-6">
    </div>
  </div>
</div>

使用jQuery,您可以在页面加载时隐藏原因,然后在单击适当的单选按钮时显示它们。

这个简单的例子不支持所有可能的导航(也就是说,一旦你看到了原因,它们仍然是可见的)。尽管如此,它应该给你一个想法。

注意,如果表单元素具有惟一的id,则简化了对它们的操作,因此我在需要的地方添加了它们。

$( document ).ready(function() {
  
    // Hide reasons initially
    $("#unfit-reason").hide();
  
    // Show reasons when unfit is clicked
    $( "#radio-unfit" ).click(function() {
       $("#unfit-reason").show();
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="col-xs-7">
<input type="radio" name="res" <?php if (isset($res) && $res=="Fit") echo "checked";?> value="Fit">Fit
			<br>
<input id="radio-unfit" type="radio" name="res" <?php if (isset($res) && $res=="Unfit") echo "checked";?> value="Unfit">Unfit
			<br>
	<input type="radio" name="res" <?php if (isset($res) && $res=="all") echo "checked";?>value="all">All
		</div>
	<div class="col-xs-3">
		</div>
		</div>
	<div class="col-lg-6">
		</div>
		</div>
<div id='unfit-reason'>
<h4>Reason for being unfit</h4>
	<hr>
  <div class="row">
<div class="col-lg-6">
<div class="col-xs-2">
</div>
<div class="col-xs-7">
	<input type="radio" name="ru" <?php if (isset($ru) && $ru=="Tuberculosis") echo "checked";?> value="Tuberculosis">Tuberculosis
	br>
	<input type="radio" name="ru" <?php if (isset($ru) && $ru=="Pneumonia") echo "checked";?> value="Pneumonia">Pneumonia
			<br>
	<input type="radio" name="ru" <?php if (isset($ru) && $ru=="all") echo "checked";?>value="All">All
	</div>
	<div class="col-xs-3">
		</div>
		</div>
	<div class="col-lg-6">
	</div>
	</div>
  </div>