Как снять/выделить все чекбоксы с одинаковым именем/классом (jquery)? - JavaScript
У меня есть форма и куча чекбоксов в ней.
Чекбоксы имеют одинаковые параметры (копии). form method="post" action="action.php" name="checkbox_form" class="checkbox_form"> <input type="checkbox" name="ch_1" class="my_checkbox" value="ch_1" checked> <input type="checkbox" name="ch_1" class="my_checkbox" value="ch_1" checked> <input type="checkbox" name="ch_2" class="my_checkbox" value="ch_2"> <input type="checkbox" name="ch_2" class="my_checkbox" value="ch_2"> <!-- И тут ещё куча копий --> </form> Мне нужно по нажатию на чекбокс (т.е. снятие или выделение) снять/выделить все чекбоксы с одинаковым именем/классом. И отправить (submit) форму. То есть отловить событие клика/изменения элемента с классом my_checkbox. Получить его состояние (checked?) и получить его имя (например ch_1). Изменить его состояние и всех элементов с таким именем на противоположное (все чекбоксы с именем ch_1 теперь unchecked). Отправить форму checkbox_form. Есть идеи, как это реализовать? К сожалению, я потерял подобный код. Да и возникает некоторая сложность т.к. нужно изменять состояние не одного чекбокса, а множества... Заранее спасибо за ответы. |
Так?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form method="post" action="action.php" name="checkbox_form" class="checkbox_form">
<input type="checkbox" name="ch_1" class=my_checkbox" value="ch_1" checked>
<input type="checkbox" name="ch_1" class="my_checkbox" value="ch_1" checked>
<input type="checkbox" name="ch_2" class="my_checkbox" value="ch_2">
<input type="checkbox" name="ch_2" class="my_checkbox" value="ch_2">
<!-- И тут ещё куча копий -->
</form>
<script>
window.onload = function(){
var elems = document.querySelectorAll('.my_checkbox');
for(var i = 0; i < elems.length; i++){
elems[i].onchange = go;
}
function go() {
var name = this.getAttribute('name');
var check = this.checked;
checkAll(name, check);
}
function checkAll(name, check){
var names = document.getElementsByName(name);
for(var k = 0; k < names.length; k++){
names[k].checked = check;
}
// Тут отправляем форму
}
}
</script>
</body>
</html>
|
Цитата:
PS Я там допустил опечатку, забыл ". Исправил свой первый пост. class=my_checkbox" а надо class="my_checkbox" |
unity555,
Зачем же у вас элементы в форме с одинаковыми именами? Отправление из формы формируется по именам.... Это только radio объединяется в группу по общему имени |
| Часовой пояс GMT +3, время: 20:29. |