26.07.2012, 16:37
|
Аспирант
|
|
Регистрация: 21.04.2010
Сообщений: 34
|
|
умножить таблицу на число
Господа, прошу помощи. Есть форма:
<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 таблица вообще не выодится.
Необходимо всю таблицу перемножить на вводимое число в форме.
Заранее благодарю.
|
|
26.07.2012, 16:59
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
<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>
Последний раз редактировалось bes, 26.07.2012 в 17:14.
|
|
26.07.2012, 17:36
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
<table> * number
|
|
26.07.2012, 17:48
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от devote
|
<table> * number
|
devote, есть какой-то быстрый способ умножить все ячейки таблицы на число, не пойму как им воспользоваться?
|
|
26.07.2012, 19:11
|
Аспирант
|
|
Регистрация: 21.04.2010
Сообщений: 34
|
|
devote! Огромнейшее спасибо!!!
|
|
26.07.2012, 19:33
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Может кто поделится способом или это прикол такой
|
|
26.07.2012, 20:36
|
Аспирант
|
|
Регистрация: 21.04.2010
Сообщений: 34
|
|
Я извиняюсь, не того отблагодарил. Вам огромнейшее спасибо bes!!! Ваш пример работает. Вот только не могу понять что происходит: к примеру вводишь трехзначное число, таблица пересчиталась, но если стирать по одной цифре то таблица и дальше продолжает пересчитываться на увеличение
|
|
26.07.2012, 20:52
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Исходное-то значение перезаписывается и каждый раз умножается на то, которое осталось в ячейке (что просили, то и получили), варианты решения есть, только не понятно, зачем вообще всё это нужно (формулы перемножения у вас не рабочие (точнее один раз срабатывают при выводе), document.write зачем используете тоже не понятно), объясните, там посмотрим.
|
|
26.07.2012, 21:03
|
Аспирант
|
|
Регистрация: 21.04.2010
Сообщений: 34
|
|
Задача такая: есть таблица от 50 до 1000 с шагом 50 по горизонтали и вертикали. Есть форма ввода числа. Нужно чтобы при вводе (изменении) числа в форме, таблица пересчитывалась относительно этого числа. Поясняю: в таблице считается площадь (а х b), вводим число - получаем объем. С несколькими числами у меня получается, а вот с таблицей никак. Вот мой пример http://helpeng.ru/programs/water.php Пытаюсь сделать такой вариант, только с таблицей. Изначально выложил свое видение, но не получается определить переменную из формы в скрипте формирования таблицы. Спасибо за участие.
|
|
26.07.2012, 21:48
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
<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>
Последний раз редактировалось bes, 26.07.2012 в 22:35.
|
|
|
|