当元素为(显示:无)时如何显示选中的收音机元素

Posted

技术标签:

【中文标题】当元素为(显示:无)时如何显示选中的收音机元素【英文标题】:how to display elements of checked radio when element are (display: none) 【发布时间】:2021-11-04 19:13:02 【问题描述】:

我要做一个复选框,里面有值。 但是如果选择了默认的radio,里面的值是不会显示的,必须点击。

我知道在style 中使用#IDcheck:checked~#IDelementdisplay:block 的解决方案。但它面临许多限制。

那么有没有脚本代码命令来解决这个问题。

例如解决下面代码中不显示预先勾选的radio-check的问题

<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

<style>
    .box
        display: none;
    

</style>

<script>
$(document).ready(function()
    $('input[type="radio"]').click(function()
        var inputValue = $(this).attr("value");
        var targetBox = $("." + inputValue);
        $(".box").not(targetBox).hide();
        $(targetBox).show();
    );
);
</script>
<label>
          <!-- pre checked here -->
       <input type="radio" name="colorRadio" value="red" checked> red</label>
        <label><input type="radio" name="colorRadio" value="green"> green</label>

          <!-- don't show -->
    <div id="idr" class="red box">You have selected red</div>
    <div class="green box">You have selected green</div>

【问题讨论】:

【参考方案1】:

您可以使用以下方式使用 javascript 进行操作。不需要Jquery

function handleSelection(e) 
      const el = document.getElementById(e.value)
      
      const list = document.querySelectorAll('.box')
      
      list.forEach(i=> 
        i.classList.remove('show')
        i.classList.add('hide')
       
      )
      
      el.classList.remove('hide')
      el.classList.add('show')
    
 body 
    font-family: sans-serif;  
    
    
    .box 
      padding-top: 16px;
    
    
    .show 
      display: block;
    
    
    .hide 
      display: none;
    
  
  <label><input type="radio" name="colorRadio" value="red" checked onclick="handleSelection(this)"> red</label>
  <input type="radio" name="colorRadio" value="green" onclick="handleSelection(this)"> green</label>

    <div id="red" class="box show">You have selected red</div>
    <div id='green' class="box hide">You have selected green</div>

【讨论】:

以上是关于当元素为(显示:无)时如何显示选中的收音机元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在显示时使用 jQuery 对元素进行操作:无

使用元素 ui 选择显示占位符值

vb listbox控件中的某些项如何设置为默认选中?

如何让选中的复选框在警报时显示

一旦选中一个,在所有TableRow元素上显示复选框

使用 jQuery 检查元素是不是为“显示:无”或单击时阻塞