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

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

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

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

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

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

Строго не судите, но про возращения не понял, что куда возращается? Можно пример?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 19.10.2016, 13:04   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

простите, но, может быть, учебник по JS лучше меня расскажет, что такое функция и для чего в ней используется return ?

Читать про функции

я, честно говоря, не понимаю, что у Вас на форме дано и что нужно получить.
возможно, если я пойму, какую задачу Вы решаете своим калькулятором, то я смогу ответить не только, что Вы делаете не так, но и на вопрос, как бы я это сделал (кстати, я тоже далеко не мастер в JS ).

успехов в учебе.

p.s. А зачем Вы начали писать bool в качестве параметра функции?!

Последний раз редактировалось Serge_Bliznykov; 19.10.2016 в 13:06.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.10.2016, 09:40   #13
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию Ну не работает функция, хоть тресни.

Не могу запустить function dtCalc(), что не так, то?
Код HTML:
<!doctype html>
<html lang="ru">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
<meta charset="utf-8">
</head>
<body>
<input type="number" id="editbox1" name="Ширина изделия" value="0.4" autocomplete="off" title="Ширина изделия, мм"  min="0.4" max="4" step="0.01">
<input type="number" id="editbox2" name="Высота изделия" value="0.4" autocomplete="off" title="Высота изделия, мм"  min="0.4" max="4" step="0.01">
<button id="AdvancedButton1" type="button" style="width:80px;height:40px;" name="la" value="500">
</button>
<button id="AdvancedButton2" type="button" style="width:80px;height:40px;" name="la" value="520">
</button>
<button id="AdvancedButton3" type="button" name="la" style="width:80px;height:40px;" value="520">
</button>
<button id="AdvancedButton7" type="button" name="la" style="width:80px;height:40px;" value="650">
</button>
<button id="AdvancedButton8" type="button" name="la" style="width:80px;height:40px;" value="650">
</button>
<button id="AdvancedButton9" type="button" name="la" style="width:80px;height:40px;" value="650">
</button>
<button id="AdvancedButton10" type="button" name="la" style="width:80px;height:40px;" value="560">
</button>
<div id="wb_result" class="style3">
&nbsp;</div>
<div id="wb_correct1" class="style2">
<span><strong> Ширина от 0,4 до 4 м</strong></span></div>
<div id="wb_correct2" class="style2">
<span><strong> Высота от 0,4 до 4 м</strong></span></div>
<div id="wb_rulonkiBreadcrumb1">
</div>
<input type="checkbox" id="check" name="ck" value="on">
<div id="wb_zk" class="style3">
&nbsp;</div>
<div id="wb_calcText2">
</div>

</body>
</html>
Код:
<script type="text/javascript">
var
k,
s,
ckeckBox,
result,
counts;

        var checkValue = function (value) {
        var correct = false;
        value = parseFloat(value.replace(',', '.'));
 
        if(!isNaN(value)) {
          correct = (value >= 0.4 && value <= 4);
        }
 
        return correct ? 'Верно' : 'Введите от 0,4 до 4';
      }

      var ensureMinMaxValue = function () {
      var value = document.getElementById('editbox1').value;
      document.getElementById('wb_correct1').innerHTML = checkValue(value);
      var value = document.getElementById('editbox2').value;
      document.getElementById('wb_correct2').innerHTML = checkValue(value);
}
       
        function myFunc() {
        var editbox1 = parseFloat(document.getElementById('editbox1').value);
        var editbox2 = parseFloat(document.getElementById('editbox2').value);
        var buttonValue = parseFloat(this.value);
        var wb_result = document.getElementById('wb_result');
		result = (editbox1 * editbox2 * buttonValue).toFixed(2);
        wb_result.innerHTML = result;
      };
 
      var buttons = document.querySelectorAll('[id^="AdvancedButton"]');
      btnsLength = buttons.length;
      for(var i = 0; i < btnsLength; i++) {
      var btn = buttons[i];
      btn.onclick = myFunc;
      }
 
      var editBoxes = document.querySelectorAll('input[type="number"]');
      editBoxesLength = editBoxes.length;
      for(var i = 0; i < editBoxesLength; i++) {
        var edit = editBoxes[i];
        edit.onkeyup = ensureMinMaxValue;
        edit.onchange = ensureMinMaxValue;
      }

     var resField = document.getElementById('wb_zk'),
     ckeckBox = document.getElementById('check'),
     resFieldFirstVal = resField.innerHTML,
     counts = [2, 3, 4, 5];

ckeckBox.addEventListener('change', showHideRes.bind());
//ckeckBox.addEventListener('change', stCalc.bind());
ckeckBox.addEventListener('change', dtCalc.bind());
editbox1.addEventListener('input', stCalc.bind());

function showHideRes(elem) {
  if (ckeckBox.checked){
    resField.style.display = 'block';
  } else {
    //resField.innerHTML = resFieldFirstVal;
    resField.style.display = 'none';
  }
}

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

function dtCalc()	{ //resultdiv wb-result inner
    s = [60, 90, 120, 150];
    k = stCalc();
 
            for(var i = 0, l = s.length; i < l ; i+=1){
                if(k === counts[i]){
				if(checkBox.checked){
                    wb_result = (s[i] + +result).toFixed(2);
					} else {
					wb_result.innerHTML = result;
                     }
		}
            };
 
    };
	
</script>
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 21.10.2016, 10:12   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

извините, про программирование, это, похоже, не ваше...

Цитата:
Код:
 k = stCalc();
Вы в функции stCalc() ничего не возвращаете.
k получает значение undefined


а ещё непонятно, зачем Вы выложили старый, нерабочий код!!
Неужели ответ в пост #7 был написан зря?!

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

пост #7 не зря написан, все в тему. Код исправил, вроде всё, кроме k, но с k не знаю, что делать, как исправить?
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает функция mazanakee Visual C++ 0 22.02.2015 19:20
Sendmail работает, функция mail() работает, но есть проблема. PavelNAndreev PHP 8 27.01.2014 12:45
Не работает функция kakawkin Общие вопросы Delphi 3 28.05.2011 15:09
не работает функция Benderbej JavaScript, Ajax 2 30.08.2010 18:54
Не работает функция gets()!!! Ilya'91 Общие вопросы C/C++ 1 28.07.2008 23:16