Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2016, 08:26   #1
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию Функция не запускается

Не могу запустить function dtCalc(). Всю голову себе вынес, подскажите что не так то?
Код:
function byId(id) {return document.getElementById(id);};//присваиваем всем переменным document.getElementById

var intp_a, intp_b;
var sel_c, sel_d, sel_e, sel_f;

var button1, button2, button3;

var start;

var rezult = 0;
var rezult_out = 0;

var checkbox, resultField;
var counts = [2, 3, 4, 5];

var a, b, c, d, e, f;

var layerStyl1, layerStyl2, layerStyl3;

//----------------------------------------------------------------------------------------------------

intp_a = byId('editbox1');//ширина
intp_b = byId('editbox2');//высота

sel_c = byId('box');//список вертикальных
sel_d = byId('mobilCombobox1');//список горизонтальных
sel_e = byId('mobilCombobox2');//список горизонтальных
sel_f = byId('mobilCombobox3');//список рулонных

checkbox = byId('check');//чекбокс
resultField = byId('wb_zk');//поле вывода кол-ва кронштейнов 
rezult_out = byId('wb_rezult');//результат

layers = document.querySelectorAll('[id^=Layer]');//все слои Layer

button1 = byId('mobilButton1');
button2 = byId('mobilButton2');
button3 = byId('mobilButton3');

byId('mobilButton1').onclick = get1;
byId('mobilButton2').onclick = get2;
byId('mobilButton3').onclick = get3;
byId('mobilButton1').click();//при загрузке сразу работает myFunc1

//-----------------------------------------------------------------------------------------------------

function startOne() {start();}; //в переменную start добляем функции myFunc1, myFunc2, myFunc3
    
button1.addEventListener("click", hideShow.bind(0,'Layer1'),false);//скрываем и показываем слой Layer1
button2.addEventListener("click", hideShow.bind(0,'Layer2'),false);//скрываем и показываем слой Layer2
button3.addEventListener("click", hideShow.bind(0,'Layer3'),false);//скрываем и показываем слой Layer3

intp_a.addEventListener("input", startOne);
intp_a.addEventListener("input", dtCalc);
intp_a.addEventListener("input", stCalc);
intp_b.addEventListener("input", startOne);
sel_c.addEventListener("click", myFunc1);
sel_d.addEventListener("click", myFunc2);
sel_e.addEventListener("click", myFunc2);
sel_f.addEventListener("click", myFunc3);
checkbox.addEventListener('change', showHideRes);
checkbox.addEventListener('change', stCalc);
checkbox.addEventListener('change', dtCalc);

//Присваиваем переменной start функцию myFunc1, myFunc2, myFunc3-----------------------------------------

function get1() {start = myFunc1;}

function get2() {start = myFunc2;}

function get3() {start = myFunc3;}

//------------------------------------------------------------------------------------------------------

function getValues() {
    a = parseFloat(intp_a.value);
    b = parseFloat(intp_b.value);
    c = parseFloat(sel_c.value);
    d = parseFloat(sel_d.value);
    e = parseFloat(sel_e.value);
    f = parseFloat(sel_f.value);
};

//Функция показывает и скрывает поле кол-ва кронштейнов-------------------------------------------------

function showHideRes() {
    if (checkbox.checked) {resultField.style.display = 'block';} 
	else {resultField.style.display = 'none';}
};

//Функция скрывает и показывает слой Layer--------------------------------------------------------------

function hideShow(lay){
  [].forEach.call(layers,function(elem){elem.style.display = (elem.id == lay)?'block':'none';})
};

//Функции расчета кол-ва кронштейнов-------------------------------------------------------------------

function stCalc() {
    if (checkbox.checked) {
        if (intp_a.value >= 0.4 && intp_a.value <= 1.8) {resultField.innerHTML = counts[0];} 
		else if (intp_a.value >= 1.81 && intp_a.value <= 2.5) {resultField.innerHTML = counts[1];} 
		else if (intp_a.value >= 2.51 && intp_a.value <= 3.5) {resultField.innerHTML = counts[2];} 
		else if (intp_a.value >= 3.51 && intp_a.value <= 4) {resultField.innerHTML = counts[3];}
    }
};

//Функции расчета стоимости кронштейнов от их количества-----------------------------------------------

function dtCalc() {
var s = [60, 90, 120, 150];

if (checkbox.checked){
  if (resultField.innerHTML == counts[0]) {rezult + s[0];} 
  else {myFunc1();} 
  if (resultField.innerHTML == counts[1]) {rezult + s[1];} 
  else {myFunc1();} 
  if (resultField.innerHTML == counts[2]) {rezult + s[2];} 
  else {myFunc1();} 
  if (resultField.innerHTML == counts[3]) {rezult + s[3];}
  else {myFunc1();}
  }
};

//Функция Выводит стоимость по myFunc1, myFunc2, myFunc3--------------------------------------------------------

function printValues() {
    var out = rezult;
    rezult_out.innerHTML = out;
    console.log(out);
}

//Функция выводит стоимость ----------------------------------------------------------------------------

function myFunc1() {
    getValues(); rezult = (a * b * c).toFixed(2); printValues();
};

function myFunc2() {
    getValues(); rezult = (a * b * d * e).toFixed(2); printValues();
};

function myFunc3() {
    getValues(); rezult = (a * b * f).toFixed(2); printValues();
};
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 01.11.2016, 12:37   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

ну а что devtools говорит?
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 01.11.2016, 12:53   #3
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
ну а что devtools говорит?
Это что?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 01.11.2016, 13:00   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Гугл сломался?
Кнопка F12 в браузере.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.11.2016, 13:15   #5
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Молчит )))
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 01.11.2016, 13:20   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

devtools это не только консоль, но и отладчик, в котором можно ставить breakpoint'ы.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.11.2016, 13:53   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Молчит )))
где же он молчит,
когда он криком кричит - не могу обработчику onClick null присвоить!

js_error.png
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.11.2016, 14:03   #8
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
где же он молчит,
когда он криком кричит - не могу обработчику onClick null присвоить!

Вложение 84298
тут null не присваемое значение, а объект, которому пытаешься задать свойство onclick.

перед запуском создай какую-нибудь кнопку с айдишником mobilButton1 и ругаться он также начнет на следующую строку...

===========

UPD: Поскольку ТС любезно не предоставил верстку, в расчете что мы больше любим читать код, чем 1 раз посмотреть в отладчик... Пусть сам и ковыряет, а мы тут будем сыпать предположения и подсказки.
Alar, верни репу!

Последний раз редактировалось Naive; 01.11.2016 в 14:07.
Naive вне форума Ответить с цитированием
Старый 01.11.2016, 14:12   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
в расчете что мы больше любим читать код
я и код не читал, надоело после его десятой темы

ну и описание проблемы "Не могу запустить" тоже мало что говорит.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.11.2016, 14:36   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
тут null не присваемое значение, а объект, которому пытаешься задать свойство onclick.

перед запуском создай какую-нибудь кнопку с айдишником mobilButton1 и ругаться он также начнет на следующую строку...
ага, верно, спасибо за науку.


Цитата:
Поскольку ТС любезно не предоставил верстку, в расчете что мы больше любим читать код, чем 1 раз посмотреть в отладчик... Пусть сам и ковыряет, а мы тут будем сыпать предположения и подсказки.
Цитата:
я и код не читал, надоело после его десятой темы
да, согласен.

я в основном для собственного развития темы читаю.
хотя, чувствую, что с его лозунгом
Цитата:
Еду медленно, но верно!
я долго буду в пути...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НЕ ЗАПУСКАЕТСЯ Алена2010 Общие вопросы C/C++ 1 27.10.2011 15:17
Не запускается kop Помощь студентам 1 22.10.2011 00:37
Не запускается пк... sew960i Компьютерное железо 11 21.11.2010 02:52
Не запускается программа((( katerina2508 Паскаль, Turbo Pascal, PascalABC.NET 4 23.06.2010 13:45
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50