当前位置: 首页 > 知识库问答 >
问题:

我正在使用Document.QuerySelectorAll('input[type=checkbox]:checked')从动态创建的复选框中获取选中值

宋飞文
2023-03-14

我正在动态创建复选框....我希望复选框中的复选值应该存储在一个数组中...我面临着以下几个问题...

>

  • var CheckedValue=Document.QuerySelectorAll('input[type=checkbox]:checked');如果我警告它给出的checkedvalue值未定义

    如果我有console.log,则最后一个变量console.log(数组);如果选中该值,它会在console.log中给出[“on”]。

    我没有得到实际值。下面给出了我的代码。我不知道我做错了什么。谁能请你帮帮我。提前致谢

    <input type="Submit" Value="add" onclick="searchinput()">
    --------------
    function searchinput()
    {
    var li=document.createElement("li");
    //creating checkbox
    var label=document.createElement('label');
    label.className="lab_style";
    li.appendChild(label);
        var check=document.createElement('input');
        check.type="checkbox";
        check.name="check_bo";  
        li.appendChild(check);
        check.addEventListener('click', function() {
    
     var array=[];
      var checkedvalue=document.querySelectorAll('input[type=checkbox]:checked');
        alert(checkedvalue.value);
        for (var i = 0; i < checkedvalue.length; i++) {
        array.push(checkedvalue[i].value);
        console.log(array);
        }
        
    }, false);
    }
    
  • 共有2个答案

    阙弘博
    2023-03-14

    如果您有一个包含一组复选框的表单,并且一旦提交表单,您希望将所有被选中的复选框的值存储在数组中,那么您可以这样做。

    null

    const checkboxes = document.querySelectorAll("input");
    const form = document.querySelector("form");
    const arr = [];
    
    form.addEventListener("submit", (e) => {
      e.preventDefault()
      checkboxes.forEach(chbox => {
        if (chbox.checked) {
          arr.push(chbox.value)
        }
      })
      console.log(arr)
    })
    html lang-html prettyprint-override"><form>
      <label>Apple:
      <input type="checkbox" value="apple" name="test"></label>
      <label>Mango:
      <input type="checkbox" value="mango" name="test"></label>
      <label>Banana:
      <input type="checkbox" value="banana" name="test"></label>
      <label>Grape:
      <input type="checkbox" value="grape" name="test"></label>
      <button type="submit">Submit</button>
    </form>
    羊禄
    2023-03-14

    你面临的一个问题是

      document.querySelectorAll('input[type=checkbox]:checked');
    

    返回节点列表并且不是节点列表对象的属性。这就是您在警报中看到“未定义”的原因。尽可能少地更改代码,我认为这应该是可行的:

    function searchinput()
    {
        var li=document.createElement("li");
        //creating checkbox
        var label=document.createElement('label');
        label.className="lab_style";
        li.appendChild(label);
        var check=document.createElement('input');
        check.type="checkbox";
        check.name="check_bo";  
        li.appendChild(check);
        check.addEventListener('click', function() {
    
            var array=[];
            var checkedvalue = document.querySelectorAll('input[type=checkbox]:checked');
            for (var i = 0; i < checkedvalue.length; i++) {
                if(checkedvalue[i].checked) {
                    array.push(checkedvalue[i].value);
                }
            }
        
        }, false);
    }
    
     类似资料:
    • 问题内容: 我是php的新手,我想根据从MySQL获取的结果动态创建复选框。如果我在employee表中有10条记录,那么它必须创建10个以员工姓名作为value的复选框。我看过几本教程来制作数组复选框等,但无法解决问题。请那里的任何人帮助!!! 问题答案: 试试看: 上面看到的示例依赖于两点才能真正正常运行: 您正在使用MySQL 您的SQL查询必须检索员工的姓名(以便您可以在循环中使用它们

    • 所以我有这样的代码: 我只需要Javascript来获取当前选中的任何复选框的值。 编辑:要添加,只有一个复选框。

    • 你好,我是一个学生,我的项目是制作一个应用程序的android工作室。 我只是个初学者,所以每件事都很难:( 这是我的问题。 我动态创建的复选框取决于当前。 如果用户单击btnEx按钮,我想获得finalMemberTag。 但是在这段代码中,当我单击btnEx时,finalMemberTag为空。 如果用户单击复选框,我希望将复选框的文本添加到FinalMemberTag中。并且复选框未选中,则

    • 如何在java Android中创建一个自动选中的复选框?

    • 介绍 用于在选中和非选中状态之间进行切换。 引入 import { createApp } from 'vue'; import { Checkbox, CheckboxGroup } from 'vant'; const app = createApp(); app.use(Checkbox); app.use(CheckboxGroup); 代码演示 基础用法 通过 v-model 绑定复

    • checkbox常用于多选的情况,比如批量删除、添加群聊等; DOM结构 <div class="mui-input-row mui-checkbox"> <label>checkbox示例</label> <input name="checkbox1" value="Item 1" type="checkbox" checked> </div> 默认checkbox在右侧显示,若希