Не работает скрипт вычислений

Тема в разделе "JavaScript", создана пользователем Remca, 14 май 2016.

Метки:
  1. Remca

    Remca

    Регистрация:
    3 май 2016
    Сообщения:
    0
    Симпатии:
    0
    Главная проблема в том что ни промежуточное h3 функцией calc3, ни итоговое V22 не считаются. h3 должен считаться при клике на поле t49, так как t47, t48-его исходные данные, а готовый результат h3, выдается в поле t49, А V22 должно считаться при клике на кнопку "Вычислить". Помогите пожалуйста.

    Код:
    function areaRectangle13(){
    this.calc3();
    var d10=document.forma1.t43.value||0;
    var d20=document.forma1.t44.value||0;
    var d30=document.forma1.t45.value||0;
    var D1=document.forma1.t46.value||0;
    var h1=document.forma1.t47.value||0;
    var h2=document.forma1.t48.value||0;
    var h3 = 4546-(h1+h2);
    
    if ( (d10 == 0) || (d20 == 0) || (d30 == 0) || (h1 == 0) || (h2 == 0) || (h3 == 0) ) {
    alert('Входные данные не могут быть равны 0');
    return;
    }
    if ( (d10 < 0) || (d20 < 0) || (d30 < 0) || (h1 < 0) || (h2 < 0) || (h3 < 0) ) {
    alert('Входные данные не могут быть меньше 0');
    return;
    }
    var V22=0.785*1.04*( (D1*D1-d10*d10)*h1 + (D1*D1-d20*d20)*h2 + (D1*D1-d30*d30)*h3 );
    document.forma1.res13.value=V22.toFixed(2);
    }
    
    function calc3() { //в подрасчёте есть промежуточное значение p
    console.log(1); //пользователь узнает чему равно p, только после ввода p1,p2 и m
    
    var h1=document.forma1.t47.value||0;
    var h2=document.forma1.t48.value||0;
    var h3 = 4546-(h1+h2);
    
    document.forma1.t49[0].value = h1;
    document.forma1.t49[1].value = h2;
    document.forma1.t49[2].value = h3;
    }
    
    document.addEventListener("DOMContentLoaded", function (event) {
    document.forma1.t47.addEventListener("keyup", calc3);
    document.forma1.t48.addEventListener("keyup", calc3);
    });
    
    Код:
    <form name="forma1" style="background-color:#44944A;"> <!-- поменяю цвет формы -->
    <div id="resizable">
    <br>
    <!--"подрасчёт 4.3"-->
    <table align="center">
    <p align="center">Количество жидкости, необходимое для промывки излишков цементного раствора</p>
    <tr><td height="40px">
    <tr><td height="40px">
    <div class="price">Наружний диаметр НКТ, соответственно, 60мм, м;</div><input name="t43" id="t43" type="text" align="right" size="4" maxlength="8"  onkeyup="return proverka(this)">
    </td>
    </tr>
    <tr><td height="40px">
    <div class="price">Наружний диаметр НКТ, соответственно,73мм, м;</div><input name="t44" id="t44" type="text" align="right" size="4" maxlength="8"  onkeyup="return proverka(this)">
    </td>
    </tr>
    <tr><td height="40px">
    <div class="price">Наружний диаметр НКТ, соответственно,89мм, м;</div><input name="t45" id="t45" type="text" align="right" size="4" maxlength="8"  onkeyup="return proverka(this)">
    </td>
    </tr>
    <tr><td height="40px">
    <div class="price">Внутренний диаметр эксплуатационной колонны, м; </div><input name="t46" id="t46" type="text" align="right" size="4" maxlength="8"  onkeyup="return proverka(this)">
    </td>
    </tr>
    <tr><td height="40px">
    <div class="price">Длина колонны нижней секции заливочных труб, м;</div><input name="t47" id="t47" type="text" align="right" size="4" maxlength="8"  onkeyup="return proverka(this)">
    </td>
    </tr>
    <tr><td height="40px">
    <div class="price">Длина колонны средней секции заливочных труб, м;</div><input name="t48" id="t48" type="text" align="right" size="4" maxlength="8"  onkeyup="return proverka(this)">
    </td>
    </tr>
    <tr><td height="40px">
    <div class="price">Длина колонны верхней секции заливочных труб, м;</div><input name="t49" id="t49" type="text" align="right" size="4" maxlength="8"  onkeyup="return proverka(this)">
    </td>
    </tr>
    <tr><td>
    <input type="button" name="button" value="Вычислить" onClick="areaRectangle13();">
    <input type="text" name="res13" size="10">
    </td></tr>
    </table>
    </div>
    <br>
    </form>
     
    Последнее редактирование: 14 май 2016