使用JS将HTML核对表元素推送到数组中

时间:2014-06-20 18:28:25

标签: javascript

我希望我的清单能够记住选中选项的价值。每当用户选中该框时,我想将值推入数组,每当他取消选中它时,我希望将其删除。 使用我的提交按钮,我想显示每个已检查元素的警报。

我可以填充数组,但由于某种原因它会覆盖以前的元素。此外,它只是不会对“未检查状态”作出反应,也不会在提交时显示任何内容。 注意:我需要这个以后可以工作大约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()">

1 个答案:

答案 0 :(得分:0)

移动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>