从下拉框中随机选择一个选项,然后单击以激活另一个在 Javascript 中使用 onChange 的函数

Posted

技术标签:

【中文标题】从下拉框中随机选择一个选项,然后单击以激活另一个在 Javascript 中使用 onChange 的函数【英文标题】:Randomly choose an option from the dropdown box and click to activate an another function that uses onChange in Javascript 【发布时间】:2021-11-02 12:20:43 【问题描述】:

我将添加一个脚本onChange 链接到此下拉框(id="select-box-1"),因为当我选择其中一个选项时,它将被激活。

按钮id="botao-do-jogo-aleatorio-1"从选择框中随机选择一个选项。

但目前当我点击随机选择按钮时,选择栏出现选择的选项,但它没有激活onChange脚本,因为没有任何操作。

我怎样才能选择复选框但生成点击而不是像.selectedIndex这样设置值是在做什么?

<html>
    <head>
        <style>
        </style>
        <script id="random-number">
            function generateRandomIntegerInRange(min, max) 
                return Math.floor(Math.random() * (max - min + 1)) + min;
            
        </script>
    </head>
    <body style="background-color:black;">
        <div class="row">
            <div class="column left">
                <form id="jogo-aleatorio-1" action="" method="post">
                    <button class="button" id="botao-do-jogo-aleatorio-1" style="width: 100%;" onclick="funcao_jogo_aleatorio_1()">Partida Aleatória 1</button>
                </form>
                <script id="script-da-caixa-de-selecao-suspensa-1">
                    function funcao_jogo_aleatorio_1() 
                        var btn = document.getElementById('jogo-aleatorio-1');
                        btn.onclick = function(e) 
                            e.preventDefault();
                            document.getElementById("select-box-1").selectedIndex = generateRandomIntegerInRange(1, document.querySelectorAll("dl dt").length);
                        ;
                    
                </script>
                <form action="" method="post" id="formulario-radar-1">
                    <div id="caixa-suspensa-1">
                        <input type="text" id="barra-de-texto-para-radar-1" style="width: 283px;">
                    </div>
                </form>
                <select id="select-box-1" style="width: 100%;">
                    <option value="" market=""></option>
                    <option value="home" market="away">journey</option>
                    <option value="hotel" market="party">events</option>
                </select>
                <dl style="color:white;font-weight:bold;;overflow:hidden;overflow-y:scroll;">
                    <dt>journey</option>
                    <dt>events</option>
                </dl>
            </div>
        </div>
    </body>
</html>

【问题讨论】:

【参考方案1】:

这就是答案

let a = document.querySelectorAll(".dl dt");

for (let i = 0; i < a.length; i++) 
 a[i].addEventListener('click', function() 
  // code here and use 'this'
 ;
;

使用 for 循环检查每个输入元素,否则您无法访问它。 然后在// 代码中插入函数、对象或数组,并使用“this”选择器来处理选定的输入。

【讨论】:

嗨@OuterGuy 但是如果下拉框中的选项选择是用随机数完成的,那么在循环中如何定义呢? 抱歉我缺乏知识,但我不知道如何继续。我无法在您的推荐中添加我的代码。 我不明白您的要求,请在您的问题中张贴图片或以更好的方式解释它。 当我使用selectedIndex 从选择框中选择选项时,选择的值在选择框中显示为选中状态。但是当我手动进行此选择时,会出现change 并激活onChange function。如果我从selectedIndex 中选择,这个onChange 不会被激活。 我的答案是正确的,你需要for循环每个输入,否则你无法访问它。 “onchange”方法不起作用,因为它不是正确的命令。在这里使用 for 循环并在 // 代码中插入函数、对象或数组,并使用“this”处理选定的输入。

以上是关于从下拉框中随机选择一个选项,然后单击以激活另一个在 Javascript 中使用 onChange 的函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在不同的选项卡/窗口中打开选择标签(下拉菜单)的选项?

下拉框取决于在另一个下拉框中选择的选项

从 Angular 的下拉列表中删除选定的选项

更改双列表框中单击选项的背景颜色

JavaScript 根据使用数组从另一个下拉列表中的选择动态创建选项

从下拉列表中选择选项并使用 nodejs 提交请求