Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 使用JS将HTML清单元素推送到数组中_Javascript - Fatal编程技术网

Javascript 使用JS将HTML清单元素推送到数组中

Javascript 使用JS将HTML清单元素推送到数组中,javascript,Javascript,我想让我的清单记住选中选项的值。每当用户选中该框时,我希望将该值推入数组,每当他取消选中该框时,我希望将其删除。 通过我的提交按钮,我想为每个选中的元素显示一个警报 我可以填充数组,但由于某种原因它会覆盖前面的元素。而且它不会对“未检查状态”做出反应,也不会在提交时显示任何内容。 注:我需要这个工作大约200输入以后 <h1>Checklist</h1> <form> <input type="checkbox" name="remember"

我想让我的清单记住选中选项的值。每当用户选中该框时,我希望将该值推入数组,每当他取消选中该框时,我希望将其删除。 通过我的提交按钮,我想为每个选中的元素显示一个警报

我可以填充数组,但由于某种原因它会覆盖前面的元素。而且它不会对“未检查状态”做出反应,也不会在提交时显示任何内容。 注:我需要这个工作大约200输入以后

<h1>Checklist</h1>

<form>
    <input type="checkbox" name="remember" id="remember" onclick="checkboxFunction(value)" value="F-Card geholt">F-Card geholt<br>
    <input type="checkbox" name="remember" id="remember" onclick="checkboxFunction(value)" value="Ersti Rally">Ersti Rally <br>
    <input type="checkbox" name="remember" id="remember" onclick="checkboxFunction(value)" value="TEST">TEST<br>
</form>

<script type="text/javascript">

    var checkbox = document.getElementsByName("remember");
    var checkboxArray = [];

    function checkboxFunction(value)
    {
        for(var i=0, length=checkbox.length; i<length; i++)
        {
            if(checkbox[i].checked)
            {
                checkboxArray.push(value);
            }
            else if (!checkbox[i].checked && value == checkboxArray[i])
            {
                checkboxArray.splice(value);
            }
        }
    }

    function alertFunction()
    {
        for(var i=0, length=checkbox.length; i<length; i++)
        {
            if (typeof checkboxArray[i] != 'undefined') 
            {
                alert(checkboxArray[i]); 
            }
        }   
    }
</script>

<input type="button" name="alert" value="Submit" onclick="alertFunction()">
检查表
F-Card geholt
埃尔斯蒂拉力赛
测试
var checkbox=document.getElementsByName(“记住”); var checkboxArray=[]; 函数checkboxFunction(值) {
对于(var i=0,length=checkbox.length;imove
var checkboxArray=[];
在checkboxFunction之外

<script type="text/javascript">
        var checkboxArray = [];
    function checkboxFunction(value)
    {
        var checkbox = document.getElementsByName("remember");


        for(var i=0, length=checkbox.length; i<length; i++)
        {
            if(checkbox[i].checked)
            {
                checkboxArray.push(value);
            }
            else if (!checkbox[i].checked && value == checkboxArray[i])
            {
                checkboxArray[i] = null;
            }

            //alert(checkboxArray[i]); 
        }
    }

    function alertFunction()
    {
        for(var i=0, length=checkboxArray.length; i<length; i++)
        {
            alert(checkboxArray[i]); 
        }   
    }
</script>

var checkboxArray=[];
函数checkboxFunction(值)
{
var checkbox=document.getElementsByName(“记住”);

对于(var i=0,length=checkbox.length;icheckboxArray超出了您的alertFunction的作用域。我尝试将其用作public,但它也不起作用,因此我认为这可能不是问题。我尝试按ID查找checkboxArray,但也不起作用。checkboxArray在checkboxFunction中定义,因此它仅在该函数的作用域中可用,否在第二个项目中,我再次尝试了我2小时前尝试过的方法,突然它成功了…我现在可以显示数组中的元素,但它仍然覆盖了它们。第一个项目有效,第二个项目删除了第一个项目,第二个项目和第三个项目用它的值覆盖了所有三个项目。。。