Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   заставить скрипт работать с загрузкой страницы (https://javascript.ru/forum/misc/66215-zastavit-skript-rabotat-s-zagruzkojj-stranicy.html)

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);
})


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