我希望我的清单能够记住选中选项的价值。每当用户选中该框时,我想将值推入数组,每当他取消选中它时,我希望将其删除。 使用我的提交按钮,我想显示每个已检查元素的警报。
我可以填充数组,但由于某种原因它会覆盖以前的元素。此外,它只是不会对“未检查状态”作出反应,也不会在提交时显示任何内容。 注意:我需要这个以后可以工作大约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()">
答案 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>