Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2012, 23:01   #1
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию Результат выполнения скрипта в одном и том же окне

Код:
<div id="header" style="border:1px;">
Лабораторная работа №2<br>
Написать программу, которая выводит на экран таблицу стоимости, например, яблок в диапазоне от 100 г до 1 кг с шагом 100 г.
</div>

<div style="padding-top:150px; text-align:center">

<form action="" method="post" name="form1" onsubmit="return SendForm();">  
<p>Введите цену за КГ:<br> <input name="cena_kg" type="text" /></p><br> 
<input name="ok" type="submit" value="Рассчитать"/>
</form> 



<script language="JavaScript">
<!--
function SendForm() {

	if (document.forms[0].cena_kg.value == "") {
		alert('Пожалуйста, введите что-нибудь');
    	document.mailform.cena_kg.focus();
   		return false
	}
	else if (isNaN(parseInt(document.forms[0].cena_kg.value))) {
		alert('Пожалуйста, введите число');
    	document.mailform.cena_kg.focus();
    	return false
	}
	else 
	{
var j=0;
var i,k;
var ves = new Array();
var cena = new Array();
text=parseInt(document.form1.cena_kg.value);

document.write('<table border="1" align="center"> <tr> <td>Вес, граммы</td>');

for (i = 100; i <=1000; i=i+100)
{
ves[j] = i;
cena[j] = (text*i)/1000;
document.write( "<td>"+ves[j]+"</td>");
j=j+1; 
}
document.write("<tr>");
document.write("<td>Стоимость</td>");
for (k=0;k<=j-1;k++)
{
document.write("<td>"+cena[k]+"</td>");
}
document.write("</tr>");
return true;
}
}
</script>

</table>
</div> 

<br><br>

Решил выложить сразу весь код, чтобы было понятнее. Вверху даже есть задание. Собственно задача решена, всё работает, но одно НО.
После того, как нажимаешь на кнопку "рассчитать", в браузере появляется новая страница с результатами, а мне бы хотелось, чтобы результат появился на этой же странице просто ниже формы. Возможно ли это при использовании js?
Tanzor69 вне форума Ответить с цитированием
Старый 09.02.2012, 01:06   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
return true;
в конце поменяйте на
Код:
return false;
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 09.02.2012, 10:40   #3
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию

блин, что-то не помогло, всё равно после нажатия на кнопку появляется новая страница с результатом
Tanzor69 вне форума Ответить с цитированием
Старый 09.02.2012, 14:33   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
<html>
<head>

<script language="JavaScript">
function SendForm() {

	if (document.forms[0].cena_kg.value == "") {
		alert('Пожалуйста, введите что-нибудь');
    		document.mailform.cena_kg.focus();
   		return false
	}
	else if (isNaN(parseInt(document.forms[0].cena_kg.value))) {
		alert('Пожалуйста, введите число');
	    	document.mailform.cena_kg.focus();
    		return false
	}
	else 	{
		var j=0;
		var i,k;
		var ves = new Array();
		var cena = new Array();
		text=parseInt(document.form1.cena_kg.value);
	
		result = '<table border="1" align="center"> <tr> <td>Вес, граммы</td>';

		for (i = 100; i <=1000; i=i+100)
			{
			ves[j] = i;
			cena[j] = (text*i)/1000;
			result += "<td>"+ves[j]+"</td>";
			j=j+1; 
		}
		result += "<tr>";
		result += "<td>Стоимость</td>";
		for (k=0;k<=j-1;k++)
			{
			result += "<td>"+cena[k]+"</td>";
		}
		result += "</tr></table>";
		document.getElementById("result").innerHTML = result;
		return false;
		}
	}
</script>



</head>
<body>


<div id="header" style="border:1px;">
Лабораторная работа №2<br>
Написать программу, которая выводит на экран таблицу стоимости, например, яблок в диапазоне от 100 г до 1 кг с шагом 100 г.
</div>

<div style="padding-top:150px; text-align:center">

<form action="" method="post" name="form1" onsubmit="return SendForm();">  
<p>Введите цену за КГ:<br> <input name="cena_kg" type="text" /></p><br> 
<input name="ok" type="submit" value="Рассчитать"/>
</form> 

</div>
<div id="result"></div>


</body>
</html>
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 09.02.2012, 19:37   #5
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию

спасибо большое, сам тоже уже прочитал, чем отличается вывод document.write от вывода через innerHTML
Tanzor69 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как организовать изменения текста одной кнопки по нажатию на другой в одном и том же окне? Zhigool' Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 07.02.2012 21:14
Вывод на одном и том же месте JinYa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 23.09.2011 22:54
Новые листы в одном окне [Delphi 7] _fynjy_ Общие вопросы Delphi 21 19.06.2011 14:24
TWebBrowser. Отображать в одном окне. Ponomar Работа с сетью в Delphi 0 19.04.2011 19:45
Запуск консольного приложения в том же окне DarkEvil Общие вопросы Delphi 1 04.12.2009 20:44