рони, спасибо) попробуем)
|
рони, добрый вечер) подскажите пожалуйста: а можно J глобально вынести для всех формул? Чтобы раз выбрал и оно само присваивали его во всех функциях где оно необходимо? Просто в J там будет клацалка с вариантами выбора, и было бы намного проще выбирать её один раз только.
<h1>J gl</h1> <form> <div>J <select id="JGlobal"> <option>6.8</option> <option>6.9</option> <option>7.0</option> <option>7.5</option> <option>3.9</option> <option>5.9</option> </select> </div> </form> <h1>So</h1> <form id="formInput"> <div>J <select id="J"> <option>6.8</option> <option>7.0</option> </select> </div> <div>T1 <select id="T1"> <option>0.6</option> <option>0.8</option> <option>1</option> <option>1.2</option> <option>1.4</option> </select> </div> <div>T2 <select id="T2"> <option>0.2</option> <option>0.4</option> <option>0.6</option> </select> </div> <div> <label>T3</label> <input type="number"> </div> <div> <label>Va</label> <input type="number"> </div> </form> <button onclick="breakWay()">Результат So</button> <h2 id="result"></h2> <h1>Vад (по видимості)</h1> <form id="formInput1"> <div>J <select id="J2"> <option>6.3</option> <option>6.8</option> <option>7.0</option> </select> </div> <div>T2 <select id="T21"> <option>0.2</option> <option>0.4</option> <option>0.6</option> </select> </div> <div> <label>T3</label> <input type="number"> </div> <div> <label>sv</label> <input type="number"> </div> <div> <label>vaf</label> <input type="number"> </div> </form> <button onclick="breakWay1()">Результат Vад</button> <h2 id="result2"></h2> <h2 id="result3"></h2> </div> [js run] let resultF1; let resultF2; let J = Number(document.querySelector('#JGlobal').value); function breakWay() { const form = document.querySelector('#formInput'); const t3 = form[3].value; const va = form[4].value; const t1 = Number(document.querySelector('#T1').value); const t2 = Number(document.querySelector('#T2').value); //const J = Number(document.querySelector('#J').value); resultF1 = (t1 + t2 + Number(t3 * 0.5)) * (+va / 3.6) + (Math.pow(+va, 2) / (25.92 * J)); console.log(+resultF1.toFixed(2)); const result = document.querySelector('#result'); result.innerText = `Результат: ${Number(resultF1.toFixed(2))}`; } function breakWay1() { const form = document.querySelector('#formInput1'); console.log(form); const t3 = +form[2].value; const sv = +form[3].value; const vaf = +form[4].value; const t2 = Number(document.querySelector('#T21').value); //const J = Number(document.querySelector('#J2').value); resultF2 = 3.6 * J * (0.3 + t2 + 0.5 * t3) * ((Math.sqrt((2 * sv) / (J * (Math.pow(+ (0.3 + t2 + 0.5 * t3), 2))) + 1)) - 1); console.log(+resultF2.toFixed(2)); const result = document.querySelector('#result2'); result.innerText = `Результат2: ${Number(resultF2.toFixed(2))}`; const div = document.getElementById("result3"); if (resultF2 > vaf) { div.innerText = 'Швидкість руху перевищує фактичну' } else { div.innerText = 'Швидкість руху не перевищує фактичну' } } [/js] |
Остальные разновидности J я думал потом удалить и всё.. Их просто много будет, а каждый раз копировать в HTML то код будет очень длинный.. Та и практичней так будет если бы J был глобальный
|
Behemoth911,
разбейте функции на две. 1. функция должна вычислять результат и возвращать его 2. запрашивать результат у первой и выводить куда - то. и тогда вы забьёте на глобальные переменные, как ненужные. |
Behemoth911,
function getGlobal() { return Number(document.querySelector('#JGlobal').value) } let J = getGlobal(); document.querySelector('#JGlobal').addEventListener('change', function() { J = getGlobal(); }) |
рони, спасибо ОГРОМНОЕ, помогло) вчера сидел на developer.mozilla и читал про .addEventListener как раз, и там примері по кликам мышки и тд. Теперь и t3 смогу так вывести) Самое удобное в этой штуке то, что можно оставить в функции (где надо отдельно) тоже J и оно будет работать)
|
рони, решил я из формул этих удалить J и оставить глобальный, теперь формулы не работают просто(
просто удалял, как выше было в html коде..: <div>J <select id="J2"> <option>6.3</option> <option>6.8</option> <option>7.0</option> </select> </div> ... и всьо, теперь не работает( Не пойму в чём проблема если оно глобально теперь J берёт |
Behemoth911,
пас ... читать учебник, структурировать код, делать его понятным. |
пока (временно) решил проблему: <div hidden> J </div> , но правильное решение попытаюсь найти
|
Behemoth911,
правильное решение: нужны данные, запустили функцию, получили результат. не надо из одной функции делать универсального солдата. Что такое чистые функции в JavaScript? |
Часовой пояс GMT +3, время: 08:55. |