简体   繁体   English

Bootstrap 5 上的单选按钮无法使用此 JS 检查

[英]Radio Button On Bootstrap 5 Not Working With this JS Check

This The code i Make it In JS: I need to head and show some element in change radio button event;这是我在 JS 中制作的代码:我需要在更改单选按钮事件中显示一些元素;

let radioChange = document.getElementsByName("pain-location");
let headPain = document.getElementById("headPain");
let shoulderPain = document.getElementById("shoulderPain");
let backPain = document.getElementById("backPain");
let listInner = document.getElementsByClassName("list-inner");

radioChange[0].addEventListener('click', (e) => {
if(document.getElementById('painOption1').checked) {
    for (let i=0;i<listInner.length;i+=1){
        listInner[i].style.display = 'none';
    }
    headPain.style.display = "block";
} else if(document.getElementById('painOption2').checked) {
    for (let i=0;i<listInner.length;i+=1){
        listInner[i].style.display = 'none';
    }
    shoulderPain.style.display = "block";
} else if(document.getElementById('painOption3').checked) {
    for (let i=0;i<listInner.length;i+=1){
        listInner[i].style.display = 'none';
    }
    backPain.style.display = "block";
}
});

This Is the HTML:这是 HTML:

<div class="btn-group man-points">
                <div class="ptn-check-point" id="optionBtn1">
                    <input type="radio" class="btn-check" name="pain-location" id="painOption1" required>
                    <label class="btn btn-secondary" for="painOption1"></label>
                </div>
                <div class="ptn-check-point" id="optionBtn2">
                    <input type="radio" class="btn-check" name="pain-location" id="painOption2" checked required>
                    <label class="btn btn-secondary" for="painOption2"></label>
                </div>
                <div class="ptn-check-point" id="optionBtn3">
                    <input type="radio" class="btn-check" name="pain-location" id="painOption3" required>
                    <label class="btn btn-secondary" for="painOption3"></label>
                </div>
            </div>

            <div class="list-inner" id="headPain">
                <h5>Head</h5>
            </div>
            <div class="list-inner" id="shoulderPain">
                <h5>Shoulder</h5>
            </div>
            <div class="list-inner" id="backPain">
                <h5>Shoulder</h5>
            </div>

I Used Bootstrap 5 This The code i Make it In JS: I need to head and show some element in change radio button event;我使用了 Bootstrap 5 这个我在 JS 中制作的代码:我需要在更改单选按钮事件中显示一些元素;

Check this, you are adding event listener only for the first one, here i have added event listener to all radio fields by fetching all and looping through all.检查这一点,您只为第一个添加事件侦听器,这里我通过获取所有并循环所有无线电字段将事件侦听器添加到所有无线电字段。

        let headPain = document.getElementById("headPain");
        let shoulderPain = document.getElementById("shoulderPain");
        let backPain = document.getElementById("backPain");
        let listInner = document.getElementsByClassName("list-inner");
        document.querySelectorAll('input[name="pain-location"]').forEach(element => {

            element.addEventListener('click', (e) => {
                if (document.getElementById('painOption1').checked) {
                    for (let i = 0; i < listInner.length; i += 1) {
                        listInner[i].style.display = 'none';
                    }
                    headPain.style.display = "block";
                } else if (document.getElementById('painOption2').checked) {
                    for (let i = 0; i < listInner.length; i += 1) {
                        listInner[i].style.display = 'none';
                    }
                    shoulderPain.style.display = "block";
                } else if (document.getElementById('painOption3').checked) {
                    for (let i = 0; i < listInner.length; i += 1) {
                        listInner[i].style.display = 'none';
                    }
                    backPain.style.display = "block";
                }
            });
        })

ref : How to use on addEventListener on radio button in Plain Javascript?参考如何在普通 Javascript 中的单选按钮上使用 addEventListener?

Credits : https://stackoverflow.com/users/5947043/adyson学分https://stackoverflow.com/users/5947043/adyson

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM