Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2014, 11:43
Аспирант
Отправить личное сообщение для saves7 Посмотреть профиль Найти все сообщения от saves7
 
Регистрация: 07.08.2013
Сообщений: 53

Сложение двух чисел не выводится результат
Не получается вывести результат сложения в блоке div, может кто подсказать что не так?

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title> Ввод вывод данных </title>

<script language="javascript">

function slogenie() {

var a=document.vvod.a.value; // получаем данные из формы, значение a
var b=document.vvod.b.value; // получаем данные из формы, значение b
var summ;
summ=parseInt(a)+parseInt(b); //сложение и задаем целочисленный формат а и б с помощью parseInt()
//document.write("сумма " + a + " + " + b + " = " + summ + "<br>"); почему зависает если вывести summ здесь
}
</script>

</head>

<body>

<form name="vvod">
Введи число a
<input name="a" type="text"> <br>
Введи число b
<input name="b" type="text"> <br>
<p><input value="Сумма" name="B1" onclick="slogenie()" type="button"></p>
</form>

<div>

<script>
document.write("сумма " + a + " + " + b + " = " + summ + "<br>"); //почему не выводится в блоке div
</script>

</div>





</body>
</html>

Последний раз редактировалось saves7, 08.04.2014 в 12:16.
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2014, 12:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

1. document.write
2. </script>
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2014, 12:19
Аспирант
Отправить личное сообщение для saves7 Посмотреть профиль Найти все сообщения от saves7
 
Регистрация: 07.08.2013
Сообщений: 53

Да действительно был недочет с закрывающимся скриптом. document.write есть, а результата нет. Вопрос остается открытым. Может кто помочь почему так?
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2014, 12:21
Аспирант
Отправить личное сообщение для saves7 Посмотреть профиль Найти все сообщения от saves7
 
Регистрация: 07.08.2013
Сообщений: 53

Aetae, спасибо за ссылку!
Ответить с цитированием
  #5 (permalink)  
Старый 08.04.2014, 12:25
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

вы смотрите ошибки в консоли там вроде все понятно...
Во первых у меня ругалось на то,что не может найти
document.vvod.a.value; переделал на айдишники
var a=document.getElementById('a').value;
<input id="a" type="text"> <br>
типа так
теперь если раскоментировать первый документ врайт он сработает. в итоге вот так сработает
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title> Ввод вывод данных </title>

<script language="javascript">

function slogenie() {

var a=document.getElementById('a').value; // получаем данные из формы, значение a
var b=document.getElementById('b').value; // получаем данные из формы, значение b
var summ;
summ=parseInt(a)+parseInt(b); //сложение и задаем целочисленный формат а и б с помощью parseInt()
document.write("сумма " + a + " + " + b + " = " + summ + "<br>"); //почему зависает если вывести summ здесь
}
</script>

</head>

<body> 

<form name="vvod"> 
Введи число a
<input id="a" type="text"> <br>
Введи число b
<input id="b" type="text"> <br>
<p><input value="Сумма" name="B1" onclick="slogenie()" type="button"></p>
</form>

<div> 

<script>
//document.write("сумма " + a + " + " + b + " = " + summ + "<br>"); //почему не выводится в блоке div
</script>

</div>





</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 08.04.2014, 12:27
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

а если интересно почему при загрузке страницы не срабатывает вот этот кусок
document.write("сумма " + a + " + " + b + " = " + summ + "<br>"); //почему не выводится в блоке div
то из-за того, что переменные у вас объявлены внутри функции, а отобразить вы их пытаетесь в глобальной области видимости
Ответить с цитированием
  #7 (permalink)  
Старый 08.04.2014, 12:30
Аспирант
Отправить личное сообщение для saves7 Посмотреть профиль Найти все сообщения от saves7
 
Регистрация: 07.08.2013
Сообщений: 53

Нашел ответ на свой вопрос:

"document.write работает только на этапе загрузки страницы, его нельзя вызывать в ответ на какое-нибудь событие. Если document.write вызвать после того, как страница загрузилась, результат во всех браузерах будет примерно одинаков — пустая страница и, возможно, тот текст, который был выведен последним document.write. Поэтому даже не пытайтесь использовать его в ответ на какие-то действия пользователя, только на этапе загрузки страницы."

Но как же тогда вывести результат summ????? на событие onclick
Ответить с цитированием
  #8 (permalink)  
Старый 08.04.2014, 12:44
Интересующийся
Отправить личное сообщение для versoul Посмотреть профиль Найти все сообщения от versoul
 
Регистрация: 02.03.2010
Сообщений: 10

<div id="out"></div> и вместо документ врайта
document.getElementById('out').innerHTML = "сумма " + a + " + " + b + " = " + summ + "<br>";
Ответить с цитированием
  #9 (permalink)  
Старый 08.04.2014, 13:58
Аспирант
Отправить личное сообщение для saves7 Посмотреть профиль Найти все сообщения от saves7
 
Регистрация: 07.08.2013
Сообщений: 53

Спасибо, versoul, теперь работает все как хотелось.

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title> Ввод вывод данных </title>

<script language="javascript">

function slogenie() {

var a=document.getElementById('a').value; // получаем данные из формы, значение a
var b=document.getElementById('b').value; // получаем данные из формы, значение b
var summ;
summ=parseInt(a)+parseInt(b); //сложение и задаем целочисленный формат а и б с помощью parseInt()
//document.write("сумма " + a + " + " + b + " = " + summ + "<br>"); //почему зависает если вывести summ здесь
document.getElementById('out').innerHTML = "сумма " + a + " + " + b + " = " + summ + "<br>";
}
</script>
</head>

<body>

<form name="vvod">
Введи число a
<input id="a" type="text"> <br>
Введи число b
<input id="b" type="text"> <br>
<p><input value="Сумма" name="B1" onclick="slogenie()" type="button"></p>
</form>

<div id="out" padding-left="400px">

<!--<script>
//document.write("сумма " + a + " + " + b + " = " + summ + "<br>"); //почему не выводится в блоке div
</script>-->

</div>


</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение всех элементов двух массивов. sharun Общие вопросы Javascript 27 14.05.2018 15:38
Результат дистанции двух точек черех google map чтобы выводился на отдельную страницу fastabst Элементы интерфейса 2 01.12.2014 17:43
Не выводится результат MySQL (при использовании AJAX) iBars AJAX и COMET 1 17.12.2012 09:13
Сложение дробных чисел demoniqus Общие вопросы Javascript 2 10.01.2012 21:15
Сложение случайных чисел user1111 Общие вопросы Javascript 14 08.11.2010 22:06