У меня 4 флажка. Я добавляю значения их в массив на проверку. Это выглядит так.
Вот четыре флажка, которые у меня есть.
<input type="checkbox" value="degree">
<input type="checkbox" value="pgd">
<input type="checkbox" value="hnd">
<input type="checkbox" value="advdip">
Как только я проверяю все четыре из них, массив становится,
["degree", "pgd", "hnd", "advdip"]
Когда Я снимаю флажок, мне нужно удалить его значение из массива в соответствии с его правильным номером индекса. Я использовал splice()
, но он всегда удаляет первый индекс degree
. Мне нужно удалить значение из массива в соответствии с его индексом, независимо от того, какой флажок я сниму. Надеюсь, кто-то поможет. Ниже приведен код. Заранее спасибо!
<input type="checkbox" value="degree">
<input type="checkbox" value="pgd">
<input type="checkbox" value="hnd">
<input type="checkbox" value="advdip">
<script>
function getLevels() {
// get reference to container div of checkboxes
var con = document.getElementById('course-levels');
// get reference to input elements in course-levels container
var inp = document.getElementsByTagName('input');
// create array to hold checkbox values
var selectedValues = [];
// collect each input value on click
for (var i = 0; i < inp.length; i++) {
// if input is checkbox
if (inp[i].type === 'checkbox') {
// on each checkbox click
inp[i].onclick = function() {
if ($(this).prop("checked") == true) {
selectedValues.push(this.value);
console.log(selectedValues);
}
else if ($(this).prop("checked") == false) {
// get index number
var index = $(this).index();
selectedValues.splice(index, 1);
console.log(selectedValues);
}
}
}
}
}
getLevels();
</script>