Проивзодятся вычисления по общей формуле L=l1+l2+l3. К l1,l2,l3 я написал скрипты и формы. Но проблема в том что значения которые получаются в итоге не копируются для вычисления общего L. Чтобы посчитать L общее,пользователю не нужно вводить данных потому что полученные результаты должны скопироваться для вычисления L общего. Как сделать так чтобы значения l1,l2,l3 сами копировались бы в поле, и давали бы вычисление L общего. По формуле L это общая длина всех колонн, а l1,l2,l3 длины соответсвенно нижней,средней и верхней секции. Помогите пожалуйста я туплю. Скрипты и форму я выкладываю: Код: <script> <!-- запрещаем пользователю вводить буквы --> function proverka(input) { var value = input.value; var rep = /[-;":'a-zA-Zа-яА-Я\\=`ё/\*++!@#$%\^&_№?><]/; if (rep.test(value)) { value = value.replace(rep, ''); input.value = value; } } </script> <!-- задаю для всех div-ов класс price --> <style> .price { display:inline-block; width:400px; color:blue; } </style> <script> <!-- вычисление подрасчёта 2.1 --> function areaRectangle2(){ var Q1=document.forma1.t9.value||0; var k=document.forma1.t10.value||0; var q1=document.forma1.t11.value||0; if ( (Q1 == 0) || (k == 0) || (q1 == 0) ) { alert('Входные данные не могут быть равны 0'); return; } if ( (Q1 < 0) || (k < 0) || (q1 < 0)) { alert('Входные данные не могут быть меньше 0'); return; } var l1=Q1/(k*q1||0); document.forma1.res2.value=l1; } </script> <script> <!-- вычисление подрасчёта 2.2 --> function areaRectangle3(){ var Q1=document.forma1.t12.value||0; var Q2=document.forma1.t13.value||0; var k=document.forma1.t14.value||0; var q2=document.forma1.t15.value||0; if ( (Q1 == 0) || (Q2 == 0) || (k == 0) || (q2 == 0) ) { alert('Входные данные не могут быть равны 0'); return; } if ( (Q2 == 0) || (Q2 < 0) || (k < 0) || (q2 < 0)) { alert('Входные данные не могут быть меньше 0'); return; } if ( Q2 < Q1 ) { alert('Q2 должно быть больше Q1'); return; } var l2=(Q2-Q1)/(k*q2||0); document.forma1.res3.value=l2; } </script> <script> <!-- вычисление подрасчёта 2.3 --> function areaRectangle4(){ var Q2=document.forma1.t16.value||0; var Q3=document.forma1.t17.value||0; var k=document.forma1.t18.value||0; var q3=document.forma1.t19.value||0; if ( (Q3 == 0) || (k == 0) || (q3 == 0) ) { alert('Входные данные не могут быть равны 0'); return; } if ( (Q3 < 0) || (k < 0) || (q3 < 0)) { alert('Входные данные не могут быть меньше 0'); return; } if ( Q3 < Q2 ) { alert('Q3 должно быть больше Q2'); return; } var l3=(Q3-Q2)/(k*q3||0); document.forma1.res4.value=l3; } </script> <script> onload=function(){ document.getElementById('t9').oninput=function(){ //из поле t9 берётся значение document.getElementById('t12').value=this.value; //и копируется в поле t12, потому в формулах есть повторения. document.getElementById('t13').oninput=function(){ //из поле t9 берётся значение document.getElementById('t16').value=this.value; //и копируется в поле t12, потому в формулах есть повторения. } } document.getElementById('t10').oninput=function(){ //из поле t10 берётся значение document.getElementById('t14').value=this.value; //и копируется в поле t14, t18 потому в формулах есть повторения. document.getElementById('t18').value=this.value; } } document.getElementById('res2').oninput=function(){ //из поле t9 берётся значение document.getElementById('res21').value=this.value; //и копируется в поле t12, потому в формулах есть повторения. document.getElementById('res3').oninput=function(){ //из поле t9 берётся значение document.getElementById('res31').value=this.value; //и копируется в поле t12, потому в формулах есть повторения. document.getElementById('res4').oninput=function(){ //из поле t9 берётся значение document.getElementById('res41').value=this.value; //и копируется в поле t12, потому в формулах есть повторения. } } } </script> <!-- тот же самый скрипт копирования из одного в другое текстовое поле может быть написан в нескольких вариантах: --------------------------------- 1. $(document).ready(function(){ $('#t9').on('input',function(){ $('#t12').val($(this).val()); }); }); -------------------------------- 2. function _(id){return document.getElementById(id);} onload=function(){ _('t9').oninput=function(){_('t12').value=this.value;} } ------------------------------- --> <form name="forma1" style="background-color:#44944A;"> <!-- поменяю цвет формы --> <div id="resizable"> <table align="center"> <p align="center">Общая длина всех колонн</p> <tr><td height="40px"> <div class="price">Длина колонны нижней секции;</div><input name="res21" id="res21" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Длина колонны средней секции;</div><input name="res31" id="res31" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Длина колонны верхней секции;</div><input name="res41" id="res41" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td> <input type="button" name="button" value="Вычислить" onClick="areaRectangle ();"> <input type="text" name="res5" size="10"> </td></tr> </table> <!--"подрасчёт 2.1"--> <table align="center"> <tr><td height="40px"> <p align="center">Длина колонны нижней секции;</p> <tr><td height="40px"> <div class="price">Страгивающая нагрузка на резьбовые соединения труб диаметром 60мм;</div><input id="t9" name="t9" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Коэффициент запаса;</div><input id="t10" name="t10" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Вес 1метра труб с учетом муфт диаметром 60мм;</div><input name="t11" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td> <input type="button" name="button" value="Вычислить" onClick="areaRectangle2();"> <input type="text" name="res2" size="10" id="res2"> </td></tr> </table> <table align="center"> <!--"подрасчёт 2.2"--> <p align="center">Длина колонны средней секции;</p> <tr><td height="40px"> <div class="price">Страгивающая нагрузка на резьбовые соединения труб диаметром 60мм;</div><input id="t12" name="t12" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Страгивающая нагрузка на резьбовые соединения труб диаметром 73 мм ;</div><input id="t13" name="t13" type="text" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Коэффициент запаса;</div><input id="t14" name="t14" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Вес 1метра труб диаметром 73 мм;</div><input name="t15" type="text" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td> <input type="button" name="button" value="Вычислить" onClick="areaRectangle3();"> <input type="text" name="res3" size="10" id="res3"> </td></tr> </table> <table align="center"> <!--"подрасчёт 2.3"--> <tr><td height="40px"> <p align="center">Длина колонны верхней секции;</p> <tr><td height="40px"> <div class="price">Страгивающая нагрузка на резьбовые соединения труб диаметром 73мм;</div><input id="t16" name="t16" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Страгивающая нагрузка на резьбовые соединения труб диаметром 89 мм ;</div><input type="text" align="right" name="t17" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Коэффициент запаса;</div><input id="t18" name="t18" type="text" align="right" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td height="40px"> <div class="price">Вес 1метра труб диаметром 89 мм;</div><input name="t19" type="text" size="4" maxlength="8" onkeyup="return proverka(this)"> </td> </tr> <tr><td> <input type="button" name="button" value="Вычислить" onClick="areaRectangle4();"> <input type="text" name="res4" size="10" id="res4"> </td></tr> </table> </div> <br> </form>
Ну,копирование из одного текстового поля в другое я реализовал но, тогда для этого нужно что нибудь ввести. А как реализовать такое "дублирование" без ввода чисел пользователем, и чтобы потом для нахождения L общего пользователю осталось бы нажать только на кнопку "Вычислить", а расчёт L общего выполнился без его участия. Скрипт немного изменил: Код: <script> onload=function(){ document.getElementById('t9').oninput=function(){ //из поле t9 берётся значение document.getElementById('t12').value=this.value; //и копируется в поле t12, потому в формулах есть повторения. document.getElementById('t13').oninput=function(){ //из поле t13 берётся значение document.getElementById('t16').value=this.value; //и копируется в поле t16, потому в формулах есть повторения. } } document.getElementById('t10').oninput=function(){ //из поле t10 берётся значение document.getElementById('t14').value=this.value; //и копируется в поле t14, t18 потому в формулах есть повторения. document.getElementById('t18').value=this.value; } document.getElementById('res2').oninput=function(){ //из поле res2 берётся значение document.getElementById('res21').value=this.value; //и копируется в поле res21, потому в формулах есть повторения. document.getElementById('res3').oninput=function(){ document.getElementById('res31').value=this.value; document.getElementById('res4').oninput=function(){ document.getElementById('res41').value=this.value; } } } } </script>