|
|
|
| Не могу понять как можно рассчитать в JS кол-во отмеченных элементов в форме?
Смотрел решения с использование jQuery, не охота для такой простой задачи использовать его.
На php без проблем передал значения из формы на php скрипт узнал кол-во элементов в массиве
<?php
$count = count($check);
?>
|
и все!
Вообщем:
Допустим есть форма со значениями name="id[]" ...... onclick="check()"
Нужно подсчитать кол-во отмеченных элементов, help me | |
|
|
|
|
|
|
|
для: Уфимец
(05.02.2011 в 19:52)
| | Форма с элементами, это массив, получив у формы массив только чекбоксов, с помощью getElementsByTagName("checkbox"), в цикле проверяете отмечен он или нет. | |
|
|
|
|
|
|
|
для: sim5
(05.02.2011 в 20:02)
| | вот что получилось
<script type="text/javascript">
function check()
{
//объявляем переменные
var checkeds,i,checkboxs;
//кол-во отмеченных checkbox
var checkeds = 0;
//массив все тегов input
checkboxs = document.getElementsByTagName("input");
//формируем цикл
for(i=0; i < checkboxs.length; i++)
{
//если тип элемента равен checkbox
if(checkboxs[i].type == "checkbox")
{
//проверяем его на checked
if(checkboxs[i].checked == true)
{
//считаем кол-во
checkeds++;
}
}
}
if(checkeds > 1)
{
//если кол-во отмеч.элементов более одного отображаем кнопку
document.form1.action.style.display="block";
}
if(checkeds < 2)
{
//если кол-во отмеч.элементов менее двух скрываем кнопку
document.form1.action.style.display="none";
}
}
</script>
|
| |
|
|
|
|
|
|
|
для: Уфимец
(05.02.2011 в 22:43)
| | А теперь - то же самое, только без лишних глупостей:
<script type="text/javascript">
function check ()
{
//объявляем переменные
var checkeds,i,checkboxs;
//кол-во отмеченных checkbox
var checkeds = 0;
//массив все тегов input
checkboxs = document.getElementsByTagName("input");
//формируем цикл
for (var checkeds = i = 0, checkboxs = document.form1.elements, l = checkboxs.length; i < l; i++) //СТРОКА ПЕРВАЯ
{
//если тип элемента равен checkbox
if (checkboxs [i].type == "checkbox" && checkboxs [i].checked) checkeds++; //СТРОКА ВТОРАЯ
{
//проверяем его на checked
if(checkboxs[i].checked == true)
{
//считаем кол-во
checkeds++;
}
}
}
if(checkeds > 1)
{
//если кол-во отмеч.элементов более одного отображаем кнопку
document.form1.action.style.display="block";
}
if(checkeds < 2)
{
//если кол-во отмеч.элементов менее двух скрываем кнопку
document.form1.action.style.display="none";
}
document.form1.action.style.display = (checkeds > 1) ? 'block' : 'none'; //СТРОКА ТРЕТЬЯ
}
</script>
|
| |
|
|
|
|
|
|
|
для: Абырвалг
(05.02.2011 в 23:00)
| | оптимизация =) | |
|
|
|
|
|
|
|
для: Уфимец
(05.02.2011 в 19:52)
| | Нашел в инете функцию которая мне нужна была =)
http://javascript.ru/php/count
function count( mixed_var, mode ) { // Count elements in an array, or properties in an object
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + input by: _argos
var key, cnt = 0;
if( mode == 'COUNT_RECURSIVE' ) mode = 1;
if( mode != 1 ) mode = 0;
for (key in mixed_var){
cnt++;
if( mode==1 && mixed_var[key] && (mixed_var[key].constructor === Array || mixed_var[key].constructor === Object) ){
cnt += count(mixed_var[key], 1);
}
}
return cnt;
}
|
| |
|
|
|