умножить таблицу на число
Господа, прошу помощи. Есть форма:
<form action=" " method="post"> <input type="text" name="rashod" id="rashod" size="6" align="center"> </form> и есть таблица <table border="1" width="100%"> <tr> <td> a x b , мм </td> <script type="text/javascript"> for (k=50; k<=1000; k=k+50) document.write("<td>"+String(k)+"</td>"); </script> </tr> <script type="text/javascript"> for (i=50; i<=1000; i=i+50) { document.write("<tr>"); document.write("<td>"+String(i)+"</td>"); for (j=50; j<=1000; j=j+50) { var v=(i*j).toFixed(1); document.write("<td>"+String(v)+"</td>"); } document.write("</tr>"); } </script> </table> Следующим скриптом получаю данные из формы <script> $(document).ready(function() { function speed2 () { var rashod = $("#rashod").val(); var speed2 = rashod; $(".speed2").text(speed2); }; $("#rashod").keyup(speed2); }); </script> при домножении на переменную rashod таблица вообще не выодится. Необходимо всю таблицу перемножить на вводимое число в форме. Заранее благодарю. |
<form action=" " method="post"> <input id="inp" type="text" name="rashod" size="6" align="center"> </form> и есть таблица <table id="table" border="1" width="100%"> <tr> <td> a x b , мм </td> <script type="text/javascript"> for (k=50; k<=1000; k=k+50) document.write("<td>"+String(k)+"</td>"); </script> </tr> <script type="text/javascript"> for (i=50; i<=1000; i=i+50) { document.write("<tr>"); document.write("<td>"+String(i)+"</td>"); for (j=50; j<=1000; j=j+50) { var v=(i*j).toFixed(1); document.write("<td>"+String(v)+"</td>"); } document.write("</tr>"); } </script> </table> <script> window.onload = function () { var table = document.getElementById('table'); var inp = document.getElementById('inp'); var tr = table.rows; var len = tr.length; var td, tdLen; inp.onkeyup = function () { if (isNaN(inp.value) == false && inp.value != '') { for (var i = 1; i < len; i++) {//i = 0 td = tr[i].cells; tdLen = td.length; for (var j = 1; j < tdLen; j++) {//j = 0 //if (i == 0 && j == 0) continue; td[j].innerHTML = parseFloat(td[j].innerHTML) * parseFloat(inp.value); } } } } } </script> |
<table> * number
|
Цитата:
|
devote! Огромнейшее спасибо!!!
|
Может кто поделится способом или это прикол такой :)
|
Я извиняюсь, не того отблагодарил. Вам огромнейшее спасибо bes!!! Ваш пример работает. Вот только не могу понять что происходит: к примеру вводишь трехзначное число, таблица пересчиталась, но если стирать по одной цифре то таблица и дальше продолжает пересчитываться на увеличение
|
Исходное-то значение перезаписывается и каждый раз умножается на то, которое осталось в ячейке (что просили, то и получили), варианты решения есть, только не понятно, зачем вообще всё это нужно (формулы перемножения у вас не рабочие (точнее один раз срабатывают при выводе), document.write зачем используете тоже не понятно), объясните, там посмотрим.
|
Задача такая: есть таблица от 50 до 1000 с шагом 50 по горизонтали и вертикали. Есть форма ввода числа. Нужно чтобы при вводе (изменении) числа в форме, таблица пересчитывалась относительно этого числа. Поясняю: в таблице считается площадь (а х b), вводим число - получаем объем. С несколькими числами у меня получается, а вот с таблицей никак. Вот мой пример http://helpeng.ru/programs/water.php Пытаюсь сделать такой вариант, только с таблицей. Изначально выложил свое видение, но не получается определить переменную из формы в скрипте формирования таблицы. Спасибо за участие.
|
<style> table, td { border: solid 1px; text-align: center; white-space: nowrap; } </style> <input id="inp"> <div id="div"></div> <script> window.onload = function () { var num = 20; var str = '<table id="table"><tr><td>a x b, mm</td>'; for (var i = 1; i <= num; i++) { str += '<td>' + i*50 + '</td>'; } str += '</tr>'; for (i = 1; i <= num; i++) { str += '<tr>'; for (var j = 0; j <= num; j++) { if (j == 0) { str += '<td>' + i*50 + '</td>'; } else { str += '<td>' + i * 50 * j * 50 + '</td>'; } } str += '</tr>' } str += '</table>'; document.getElementById('div').innerHTML = str; var table = document.getElementById('table'); var inp = document.getElementById('inp'); var tr = table.rows; var len = tr.length; var td, tdLen; var value; function calculate() { if (isNaN(inp.value) == false && inp.value != '') { value = parseFloat(inp.value); } else { value = 1; } for (var i = 1; i < len; i++) { td = tr[i].cells; tdLen = td.length; for (var j = 1; j < tdLen; j++) { td[j].innerHTML = i * 50 * j * 50 * value; } } } inp.onkeyup = function () { calculate() } } </script> |
Часовой пояс GMT +3, время: 04:52. |