Вход

Просмотр полной версии : заставить скрипт работать с загрузкой страницы


j0hnik
01.12.2016, 18:04
Добавить значение: <input type="checkbox" id="oneType" value="500" onchange="costCalculator()" />
<div>Сумма: <span id="oneRezult">0</span> руб.</div>

Добавить значение1: <input type="checkbox" id="twoType" value="1000" onchange="costCalculator()" />
<div>Сумма: <span id="twoRezult">0</span> руб.</div>

<div>Общая сумма:</div>
<div><span id="result">0</span> руб.</div>



function costCalculator() {
//Типы флажков
var oneType = document.getElementById("oneType");
var twoType = document.getElementById("twoType");
//Результаты флажков
var result = document.getElementById("oneType");
var result = document.getElementById("twoType");
//Общий результат
var result = document.getElementById("result");
//Цена для флажков по умолчанию
var onePrice = 0;
var twoPrice = 0;
//Общая цена
var price = 0;
//Умножаем значение на *ЧИСЛО
onePrice += (oneType.checked == true) ? parseInt(oneType.value) : 0;
twoPrice += (twoType.checked == true) ? parseInt(twoType.value) : 0;
//Складываем типы флажков + имя списка
price=onePrice + twoPrice;
//Результат для полей
oneRezult.innerHTML = onePrice;
twoRezult.innerHTML = twoPrice;
//Общий результат
result.innerHTML = price;
}

Проблема такова: скрипт складывает значение value чекбоксов. и начинает работать с первым кликом по чекбоксу.
Но если чекбокс по умолчанию checked он считает его не чекнутым до первого клика по любому чеку.
Как сделать чтобы с загрузкой станицы все чекбоксы со значением по умолчанию checked он считал при загрузке?
ХЕЛП ПЛИЗ!

Coriolan161
01.12.2016, 19:17
j0hnik,
1) Скрипт в конец боди положи или используй такую фигню

var callback = function() {
// Handler when the DOM is fully loaded
// Короче сюда суй свой код
};

if (document.readyState === 'complete' ||
(document.readyState !== 'loading' && !document.documentElement.doScroll)
) {
callback();
} else {
document.addEventListener('DOMContentLoaded', callback);
};

Теперь ты можешь быть уверен что как только DOM построен твои кодики выполнятся

2) Достать значения всех чекнутых чекбоксов можно так

[].forEach.call(document.querySelectorAll('[type="checkbox"]:checked'), function (item) {
console.log(item.value);
})