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

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

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

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

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

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

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и ещё.
а зачем Вы назначение обработчиков addEventListener("change", myFunc3) засунули ВНУТРЬ функции myFunc3?!
это в корне неверно и так работать вообще не будет!!!
У меня большой код, это только часть, куча событий подключено, могу скинуть весь код если интересно)))
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 24.03.2017, 16:36   #12
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Попробывал как вы предлагали
Код HTML:
if('B' === sel_r.value) {dd = parseFloat(sel_f.value.split(', ')[1]);} 
else if (sel_r.value === "950") {dd = parseFloat(sel_f.value.split(', ')[1]);} 
else {dd = parseFloat(sel_f.value.split(', ')[0]); rr = parseFloat(sel_r.value);}
все правильно берет второе значение value из combobox3, но 950 не прибавляет согласно формуле rezult = (l * f + r).toFixed(2); где r это rr = parseFloat(sel_r.value);
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 24.03.2017, 16:37   #13
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и ещё.
а зачем Вы назначение обработчиков addEventListener("change", myFunc3) засунули ВНУТРЬ функции myFunc3?!
это в корне неверно и так работать вообще не будет!!!
Это я только в примере засунул так то они у меня глобально висят.
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 24.03.2017, 16:56   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Это я только в примере засунул так то они у меня глобально висят.
а, понятно.
не надо так пугать!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2017, 17:05   #15
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
все правильно берет второе значение value из combobox3, но 950 не прибавляет согласно формуле rezult = (l * f + r).toFixed(2); где r это rr = parseFloat(sel_r.value);
Как быть то))
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 24.03.2017, 17:13   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spoon100500 Посмотреть сообщение
Как быть то))
не знаю.

Вы сюда выложите пример с проблемой/вашим неработающим кодом, посмотрим.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2017, 17:20   #17
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Код HTML:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
	</head>
<body>
<input type="number" id="editbox1" value="0"><!--Ширина-->
<input type="number" id="editbox2" value="0"><!--Высота-->
<div id="wb_rezult">
<span><strong><em>Результат</em></strong></span></div><!--Результат-->

<select size="1" id="combobox3">
<option value="2190, 2648">А</option>
<option value="2350, 2823">В</option>
<option value="2490, 2997">С</option>
<option value="1190, 1450">Р</option>
</select>

<select size="1" id="combobox33">
<option value="0">1</option>
<option value="B">2</option>
<option value="950">3</option>
<option value="600">4</option>
<option value="2100">5</option>
</select>

<script>
var sel_f, sel_r;
var intp_a, intp_b;
var a, b, l, f;
var rezult;
var rezult_out;

sel_f = document.querySelector('#combobox3');
sel_r = document.querySelector('#combobox33');

intp_a = document.getElementById('editbox1');//ширина
intp_b = document.getElementById('editbox2');//высота
rezult_out = document.getElementById('wb_rezult');//результат

a = parseFloat(intp_a.value);
b = parseFloat(intp_b.value);
f = parseFloat(sel_f.value);

sel_f.addEventListener("change", myFunc3);
sel_r.addEventListener("change", myFunc3);
intp_a.addEventListener("change", myFunc3); 

function byId(id) {return document.getElementById(id);}

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

function printValues() {
    var out = rezult;
    rezult_out.innerHTML = out;
};
function myFunc3() {
    getValues();
	
	var select_idx = sel_f.selectedIndex;
  var cb3 = sel_f.options[select_idx].getAttribute('iswdith');
  
 var shirves;
 var values;
	var mass;
	var rr = 0; 
	var dd;
 
 switch (cb3) {//подставляем в shirves ширину если 1 или высоту, если 0.
	case "1"://ширина
		shirves = a;
		break;

	case "0"://высота
		shirves = b;
 
if('B' === sel_r.value) {dd = parseFloat(sel_f.value.split(', ')[1]);}
else if (sel_r.value === "950") {dd = parseFloat(sel_f.value.split(', ')[1]);}//добавил, берет второе значение value из combobox3. 
else {dd = parseFloat(sel_f.value.split(', ')[0]); rr = parseFloat(sel_r.value);}// в rr не попадает 950 если выбрано <option value="950">3</option>, а должно. Если убрать эту строчку все работает ок, но берется первое значение.

		  console.log(ll, dd, rr);

          mass = [ll, dd, rr];

		  values = mass;

            l = values[0];//ширина
            f = values[1];//combobox3
            r = values[2];//combobox33

	rezult = (l * f + r).toFixed(2);

	printValues();
};
</script>
</body>
</html>
Еду медленно, но верно!

Последний раз редактировалось spoon100500; 24.03.2017 в 17:24.
spoon100500 вне форума Ответить с цитированием
Старый 24.03.2017, 17:48   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
 switch (cb3) {//подставляем в shirves ширину если 1 или высоту, если 0.
	case "1"://ширина
		shirves = a;
		break;

	case "0"://высота
		shirves = b;
я выделил открывающую скобку функционального блока в switch.
а где закрывающая?!


ну и до кучи.
Цитата:
Код:
 c = parseFloat(sel_c.value);
такой переменной нет. ошибка.

и ещё.
rr нужно обнулять в любом случае перед блоком проверок.
Код:
    rr = 0;
    if('B' === sel_r.value)
а то используете Вы эту переменную всегда, а заполняете - в зависимости от условий.

Последний раз редактировалось Serge_Bliznykov; 24.03.2017 в 17:54.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2017, 17:51   #19
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

switch (cb3) {//подставляем в shirves ширину если 1 или высоту, если 0.
case "1"://ширина
shirves = a;
break;

case "0"://высота
shirves = b;
}
Скопировал неправельно
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 24.03.2017, 18:03   #20
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

var rr = 0; Она вроде сразу с 0.
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSP + HQL: как в блоке <select></select> вызвать метод из DAO? Blondy Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 4 01.06.2013 15:54
выбор из select до загрузки страницы Xsires HTML и CSS 3 17.03.2012 18:37
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
Выбор варианта из Select qwerty55 JavaScript, Ajax 2 17.01.2011 14:53
Select t1.N,t1.FIO,(select t2.acc from t2 where t2.type=1) from t1,t2 mavlon_m SQL, базы данных 2 17.09.2009 15:28