Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   HTML/DHTML/CSS/JS/VB (http://www.flasher.ru/forum/forumdisplay.php?f=66)
-   -   Подсчет количества чекбоксов (http://www.flasher.ru/forum/showthread.php?t=119648)

fame_fatale 26.12.2008 12:47

Подсчет количества чекбоксов
 
Как подсчитать количество отмеченных чекбоксов, кто знает? :rolleyes:

Добавлено через 3 часа 33 минуты
Вот. Сама подсчитала:
Код:

<form id="myForm">
<input type="checkbox" value="123" />
<input type="checkbox" value="456" />
<input type="checkbox" value="789" />
<input type="button" value="checkbox" onclick="f()" />
</form>
<script type="text/javascript">
function f() {
var form = document.getElementById("myForm");
var elements = form.getElementsByTagName("input");
var elemCheckbox = 0;
for(var i = 0; i < elements.length; ++i)
    if (elements[i].type == "checkbox" && elements[i].checked)
        ++elemCheckbox;
       
alert(elemCheckbox);
}
</script>

Теперь бы еще реализовать отправку полученного результата по мылу. Может это кто подскажет?

KidsKilla 26.12.2008 16:53

отправка по мылу решается 2мя способами:
1) просто указанием mailto:my@mail.ru?text=mytext&subject=123
при этом откроется почтовая программа у пользователя с предзаполненными полями
2) отправкой данных на сервер, а тот уже будет слать письма

fame_fatale 26.12.2008 17:35

Я умею отправлять данные с формы, но не знаю, как отправить результат js функции! Точнее, не знаю в каком виде его представить и каким образом, чтобы он отправился вместе с данными формы?

KidsKilla 26.12.2008 18:45

Например, подставить результат в хидден-поле и засабмитить форму.
кстати, у формы есть такая штука как массив .elements,
а у инпутов -- свойство .form -- указатель на родительскую форму.
т.е. скрипт проще переделать так:
Код:

<form action="/mail_script.php" onsubmit="f(this);">
<input type="hidden" name="total_checked" value="0"/>
<input type="checkbox" name="" value="123" />
<input type="checkbox" name="" value="456" />
<input type="checkbox" name="" value="789" />
<input type="submit" value="отправить"/>
</form>
<script type="text/javascript">
function f(form) {
        var elts = form.elements;
        var count = 0;
        for(var i in elts) {
                if (elts[i].type == "checkbox" && elements[i].checked) {
                        ++count;
                }
        }
        form.total_checked = count;
}
</script>

ПС, коды оформите тэгами [code][/code]

fame_fatale 29.12.2008 11:13

Вроде бы все должно работать, но у меня тем не менее не хочет. Приходит письмо с результатом 0 и все тут! Не пойму в чем проблема! Код использую ваш, меняю только action

KidsKilla 29.12.2008 14:59

я ошибся в строке:
Код:

form.total_checked = count;
надо заменить на
Код:

form.total_checked.value = count;

fame_fatale 29.12.2008 15:11

Все равно приходит "0"! Не пойму в чем загвоздка! А у Вас все нормально работает? Может мои корявенькие ручки не то накалякали...

KidsKilla 29.12.2008 15:45

Код:

function f(form) {
        var elts = form;
        var count = 0;
        for(var i in elts) {
                if (!!elts[i] && elts[i].type == "checkbox" && elts[i].checked) {
                        ++count;
                }
        }
        form.total_checked.value = count;
}

вот так точно должно работать

fame_fatale 29.12.2008 16:17

Большое спасибо за помощь! Теперь действительно работает!:yahoo:


Часовой пояс GMT +4, время: 15:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.