Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.07.2012, 16:37
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 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 таблица вообще не выодится.
Необходимо всю таблицу перемножить на вводимое число в форме.
Заранее благодарю.
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2012, 16:59
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 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.
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2012, 17:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<table> * number
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2012, 17:48
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от devote
<table> * number
devote, есть какой-то быстрый способ умножить все ячейки таблицы на число, не пойму как им воспользоваться?
Ответить с цитированием
  #5 (permalink)  
Старый 26.07.2012, 19:11
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

devote! Огромнейшее спасибо!!!
Ответить с цитированием
  #6 (permalink)  
Старый 26.07.2012, 19:33
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Может кто поделится способом или это прикол такой
Ответить с цитированием
  #7 (permalink)  
Старый 26.07.2012, 20:36
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

Я извиняюсь, не того отблагодарил. Вам огромнейшее спасибо bes!!! Ваш пример работает. Вот только не могу понять что происходит: к примеру вводишь трехзначное число, таблица пересчиталась, но если стирать по одной цифре то таблица и дальше продолжает пересчитываться на увеличение
Ответить с цитированием
  #8 (permalink)  
Старый 26.07.2012, 20:52
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Исходное-то значение перезаписывается и каждый раз умножается на то, которое осталось в ячейке (что просили, то и получили), варианты решения есть, только не понятно, зачем вообще всё это нужно (формулы перемножения у вас не рабочие (точнее один раз срабатывают при выводе), document.write зачем используете тоже не понятно), объясните, там посмотрим.
Ответить с цитированием
  #9 (permalink)  
Старый 26.07.2012, 21:03
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

Задача такая: есть таблица от 50 до 1000 с шагом 50 по горизонтали и вертикали. Есть форма ввода числа. Нужно чтобы при вводе (изменении) числа в форме, таблица пересчитывалась относительно этого числа. Поясняю: в таблице считается площадь (а х b), вводим число - получаем объем. С несколькими числами у меня получается, а вот с таблицей никак. Вот мой пример http://helpeng.ru/programs/water.php Пытаюсь сделать такой вариант, только с таблицей. Изначально выложил свое видение, но не получается определить переменную из формы в скрипте формирования таблицы. Спасибо за участие.
Ответить с цитированием
  #10 (permalink)  
Старый 26.07.2012, 21:48
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить число целое или нет dadli Общие вопросы Javascript 29 14.06.2012 22:59
Как найти наибольшее число и ввести его на экран? Ivan152 Оффтопик 2 20.05.2012 20:13
Разбить число на миссив, как ? Bogdan808 Общие вопросы Javascript 20 01.09.2010 18:19
Как округлить число в меньшую сторону с заданной точностью? barcelona Общие вопросы Javascript 2 19.08.2009 12:07
Найти и умножить число stepan86 Общие вопросы Javascript 17 05.08.2009 13:57