【问题标题】:Closing a select tag using vanilla javascript使用 vanilla javascript 关闭选择标签
【发布时间】:2021-04-16 16:13:28
【问题描述】:

我需要一个自定义标签。所以我把它设计成:

    <span class="language-selector" id="myspan">
        <input id="display_language" value="EN" readonly>
        <span tabindex="-1" class="downarrow" id="myarrow"></span>
        <select size="10" id="selected_language" class="language_dropdown">
            <option class="language-option" value="EN">English</option>

            <option class="language-option" value="FR">French (Francais)</option>

            <option class="language-option" value="DE">German (Deutsch)</option>
        </select>
    </span>

我在上面使用了自定义 CSS。对于 JS,我使用以下代码从下拉列表中选择选项:

    var langSelec = document.querySelectorAll(
  ".language-selector .language_dropdown"
);
langSelec.forEach((element) => {
  element.addEventListener("change", function () {
    let children = element.parentNode.children;
    // console.log(children);
    var d = children[2].value;
    children[0].value = d;
  });
});

它工作正常。目前,只有当我在元素外部单击或从中选择一个选项时,下拉菜单才会关闭。

问题:

再次单击该元素时,我需要关闭下拉菜单。谁能帮帮我!

【问题讨论】:

    标签: javascript html dropdown html-select


    【解决方案1】:

    我不知道这是否是你想要的,但是这一行通过将大小设置为 1 来“关闭”

    document.querySelector(".language_dropdown").setAttribute("size", 1);
    

    设置输入值后添加即可。

    【讨论】:

    • 感谢您的回答,但这只是使选项数量增加 1。我所看到的只是一个选项“英语”
    • 好的,那么关闭是什么意思?
    • 抱歉给您带来了困惑。通过关闭我的意思是折叠打开的下拉菜单。就像我们从下拉列表中选择一个选项一样,它会关闭,并且该选定的选项会显示在框中。从这个意义上说,单击打开的下拉菜单上的下拉箭头“关闭下拉菜单”
    猜你喜欢
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多