Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我正在使用document.querySelectorAll(';input[type=checkbox]:checked';)从动态创建的复选框中获取选中值_Javascript_Arrays - Fatal编程技术网

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

Javascript 我正在使用document.querySelectorAll(';input[type=checkbox]:checked';)从动态创建的复选框中获取选中值,javascript,arrays,Javascript,Arrays,我正在动态创建复选框。。。 我希望复选框中的选中值应存储在一个数组中。。。 我面临以下问题 * 如果我有console.log,那么最后一个变量console.log(数组);考虑到 如果选中该值,则在console.log中选择“[”on“] 我没有得到实际值。下面给出了我的代码。我不知道我犯了什么错误。谁能帮我一下吗。 提前谢谢 <input type="Submit" Value="add" onclick="searchinpu

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

*

  • 如果我有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);
}

--------------
函数searchinput()
{
var li=document.createElement(“li”);
//创建复选框
var label=document.createElement('label');
label.className=“实验室风格”;
li.儿童(标签);
var check=document.createElement('input');
check.type=“checkbox”;
check.name=“check\u bo”;
李.儿童(支票);
check.addEventListener('click',function(){
var数组=[];
var checkedvalue=document.querySelectorAll('input[type=checkbox]:checked');
警报(checkedvalue.value);
对于(变量i=0;i
如果您有一个带有一堆复选框的表单,并且表单提交后,您希望将所有选中复选框的值存储在一个数组中,那么您可以这样做

const checkbox=document.querySelectorAll(“输入[type=checkbox]”);
const form=document.querySelector(“表单”);
常数arr=[];
表格.附录列表(“提交”、(e)=>{
e、 预防默认值()
复选框。forEach(chbox=>{
如果(chbox.checked){
arr.push(chbox.value)
}
})
控制台日志(arr)
})

苹果公司:
芒果:
香蕉:
葡萄:
提交

您面临的问题之一是

  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);
}
函数searchinput()
{
var li=document.createElement(“li”);
//创建复选框
var label=document.createElement('label');
label.className=“实验室风格”;
li.儿童(标签);
var check=document.createElement('input');
check.type=“checkbox”;
check.name=“check\u bo”;
李.儿童(支票);
check.addEventListener('click',function(){
var数组=[];
var checkedvalue=document.querySelectorAll('input[type=checkbox]:checked');
对于(变量i=0;i
代码仍有问题。最初,这是在提交表单时运行的,没有时间实际选中复选框。@Teemu因此,表单中有一堆复选框,一旦提交表单,我想将所有复选框的值存储在一个数组中,这就是我们试图实现的吗?一旦提交表单,您将被重定向到新页面(或当前页面被重新加载),您在当前页面上所做的一切都将消失。@您可以阻止表单的默认行为,否则您需要在后端获取数据(例如:使用POST路由)@Teemu我已经更新了我的答案请看一看。你需要熟悉。你也没有给你创建的复选框一个值^——即使有分配的值,那也没有多大价值,不管复选框是否被选中,值都是相同的。你到底想做什么?看起来你想继续,只添加一个复选框,并创建一个复选框值数组。除了提交问题,这正是您的代码所做的。“值”是什么你期望的不是上默认的
?@Teemu实际上我是初学者。我只想做我的检查表。我不想重定向到另一页。实际上我需要输入框中给定的复选框中的值。这些部分正在工作,所以我在这里没有提到。ThanksA NodeList不是数组…它类似于数组ea有效点:)
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);
}