Количество checkbox'ов
Все доброй ночи
Есть некий код, для подсчета кол-ва чекбоксов
$(document).ready(function(){
$(':checkbox').on('change', function(){
$('#count').text($(':checkbox:checked').length);
$("#count").fadeIn("slow");
});
});
Есть див для вывода кол-ва <div hidden=\"true\" style=\"position: fixed;.....\" id=\"count\"></div> Возникли 2 вопроса: 1) Как в этот код вставить какое-нибудь слово, ну к примеру возьмем отмеченных $('#count').text($(':checkbox:checked').length); получится должно типа того "отмеченных: 3", сейчас имеем просто цифру 2) По умолчанию без отметки див у нас скрытый . при отметке у нас он появляется, но если отмеченных нету, то он все равно виден. вопрос: как написать правильно код: если отмеченных меньше 1 то скрываем Спасибо заранее |
$(':checkbox').on('change', function(){
var a = $(':checkbox:checked').length;
if (!a) {
$('#count').text('Отмеченных: ' + a).fadeOut("slow");
return;
}
$('#count').text('Отмеченных: ' + a).fadeIn("slow");
});
|
Ишшо вариант, для разнообразия так скаать
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/2.0.8/es5-shim.min.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<div id="result"></div>
</body>
<script>
const el = document.querySelectorAll('input[type=checkbox]');
const result = document.getElementById('result');
function setResult(text){
result.innerText = text
}
var count = 0;
for (var item of el) {
item.addEventListener('change',(e) => {
e.target.checked ? count ++ : count--
let divText = count > 0 ? `Всего чекбоксов: ${count}` : null
setResult(divText)
})
}
</script>
</html>
|
Спасибо большое)
А как сюда id checkbox'а вставить?
$(document).ready(function(){
$(':checkbox').on('change', function(){
var a = $(':checkbox:checked').length;
if (!a) {
$('#count').html('Отмеченных: ' + a + ' <select name=\"actions\"><option selected>---</option>\n<option value=\"visible_yes\">Показать</option>\n<option value=\"visible_no\">Скрыть</option>\n</select><input type=\"submit\" class=\"log_input\" value=\"ОK\"/>').fadeOut("slow");
return;
}
$('#count').html('Отмеченных: ' + a + ' <select name=\"actions\"><option selected>---</option>\n<option value=\"visible_yes\">Показать</option>\n<option value=\"visible_no\">Скрыть</option>\n</select><input type=\"submit\" class=\"log_input\" value=\"ОK\"/>').fadeIn("slow");
});
});
К примеру есть список в каждом значении: <input type=\"checkbox\" name=\"cheKer[]\" value=\"".$row["id"]."\" /> При нажатии появляется модальное окно с селектом. Там, в модальном окне, идет передача данных id какие скрыть или показать |
Добавьте в любом месте
'+ $(this).attr("id") +'
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<input type="checkbox" id="a3">
<input type="checkbox" id="a1">
<input type="checkbox" id="a2">
<div id="count"></div>
</body>
<script>
$(document).ready(function(){
$(':checkbox').on('change', function(){
var a = $(':checkbox:checked').length;
if (!a) {
$('#count').html('Отмеченных: ' + a + ' <select name=\"actions\"><option selected>---</option>\n<option value=\"visible_yes\">Показать</option>\n<option value=\"visible_no\">Скрыть</option>\n</select><input type=\"submit\" class=\"log_input\" value=\"ОK\"/>').fadeOut("slow");
return;
}
$('#count').html('Отмеченных: ' + a + ' '+ $(this).attr("id") +'<select name=\"actions\"><option selected>---</option>\n<option value=\"visible_yes\">Показать</option>\n<option value=\"visible_no\">Скрыть</option>\n</select><input type=\"submit\" class=\"log_input\" value=\"ОK\"/>').fadeIn("slow");
});
});
</script>
</html>
Кстати, экранировать кавычки не обязательно |
Что-то все равно не то
<input type=\"checkbox\" id=\"cheKer[]\" name=\"cheKer[]\" value=\"".$row["id"]."\" /> Вот мой весь код:
$(document).ready(function(){
$(':checkbox').on('change', function(){
var a = $(':checkbox:checked').length;
if (!a) {
$('#count').html('Отмеченных: ' + a + ' <form style=\"display: inline-block;\" method=\"post\" name=\"cheKer\" action=\"video_log_act.php?action=do\"><select style=\"width:70px;margin-right:3px;padding:2px;font:12px Arial,sans-serif;\" name=\"actions\"><option selected>---</option>\n<option value=\"visible_yes\">Показать</option>\n<option value=\"visible_no\">Скрыть</option>\n</select><input type=\"submit\" class=\"log_input\" value=\"ОK\"/></form>').fadeOut("slow");
return;
}
$('#count').html('Отмеченных: ' + a + ' '+ $(this).attr("cheKer[]") + '<form style=\"display: inline-block;\" method=\"post\" name=\"cheKer\" action=\"video_log_act.php?action=do\"><input type=\"hidden\" name=\"cheKer[]\" value="$id"><select style=\"width:70px;margin-right:3px;padding:2px;font:12px Arial,sans-serif;\" name=\"actions\"><option selected>---</option>\n<option value=\"visible_yes\">Показать</option>\n<option value=\"visible_no\">Скрыть</option>\n</select><input type=\"submit\" class=\"log_input\" value=\"ОK\"/></form>').fadeIn("slow");
});
});
При отметке появляется - Отмеченных: 1 undefined вместо var a = $(':checkbox:checked').length; кажется надо проверку id сделать |
| Часовой пояс GMT +3, время: 07:14. |