Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Element is null (https://javascript.ru/forum/dom-window/16721-element-null.html)

MasterYoda 19.04.2011 12:47

Element is null
 
Что за ошибка? Не подскажете? Есть скриптик, который считает сумму отмеченных чекбоксов,
function res()
{var p=0;
 var All=document.forms['formSum'];
for(var i = 0; i < All.elements.length; ++i) {
    if(All.elements[i].checked){
    p=p+(parseInt(All.elements[i].value));
     document.formSum.showres.value=p;}
 }
}

Но почему-то когда я ставлю чекбокс, Майкрософтская хрень начинает ругаться 'elemets' is null or not an object
<form name="formSum">
<input type=\"checkbox\" name=\"q1\"  onclick=\"res()\" value=\"$value\" />'$value'
</form>

ksa 19.04.2011 13:45

MasterYoda, фиговый твой скрипт... Вот и ругается.
Т.е. 'elemets' либо не определён, либо не является объектом и с ним не возможны, производимые тобой, действия...

MasterYoda 19.04.2011 13:47

Почему фиговый? Что в нём не так? (Ответ "ВСЁ" не катит =) )

ksa 19.04.2011 13:49

Цитата:

Сообщение от MasterYoda
Ответ "ВСЁ" не кактит

Тебе таки это придётся принять, как бы горько тебе небыло... :)

MasterYoda 19.04.2011 13:50

ksa! Не смешно! Я сюда наверное за советом пришёл, а не за приколами. Если знаешь, подскажи как исправить, если нет, тогда вообще не забивай тему!

ksa 19.04.2011 13:52

Уже забил... :yes:

MasterYoda 19.04.2011 13:54

Это ты типа блеснул умом, хреново у тебя получается, из 3 ответов ни одного по теме. Интересно, как живётся с нулевым КПД?

da_ff 19.04.2011 14:42

var p=0;

var All=document.forms['formSum'];

for(var i = 0; i < All.elements.length; ++i) {
if(All.elements[i].checked){

p=p+(parseInt(All.elements[i].value));
document.formSum.showres.value=p; // это лучше вынести из тела цикла
}
}

Это не то, чтобы плохо, это черезчур олдскульно. Если совсем просто, то воспользуйся каким-нибудь фреймворком, например, jQuery.
Тогда это будет примерно так

var p = 0;
$('#formSum').find('input[type="checkbox"]:checked').each(function () {p += +this.value});

А у тебя правда что-то странное написано, совсем олдскульно.

MasterYoda 19.04.2011 15:51

А твой вариант кода в чем заключается? Как производится рассчёт? Я что-то не понимаю.

MasterYoda 19.04.2011 15:59

Просто прикол в том что мой код работает нормально, до момента, пока я не пытаюсь подключить его в php, а в html он работает.


Часовой пояс GMT +3, время: 23:38.