Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2017, 22:12
Новичок на форуме
Отправить личное сообщение для Alex2033 Посмотреть профиль Найти все сообщения от Alex2033
 
Регистрация: 04.06.2017
Сообщений: 5

Сумма значений полей при нажатии на них
Добрый день, начал изучать js, делаю задачки, и вот здесь возникла проблема.
Дано 4 поля. При нажатии на два любых поля выводится сообщение о сумме их значений.
У меня пока только так, но это не совсем то, что нужно:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <input id="i1" onkeyup="f()"><input id="i2" onkeyup="f()">
        <input id="i3"><br>
    </body>
</html>

function f(){
           var n1=document.getElementById('i1').value;
            var n2=document.getElementById('i2').value;
            document.getElementById('i3').value=Number(n1)+Number(n2);
            }
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2017, 22:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alex2033,
в чём вопрос?
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2017, 22:28
Новичок на форуме
Отправить личное сообщение для Alex2033 Посмотреть профиль Найти все сообщения от Alex2033
 
Регистрация: 04.06.2017
Сообщений: 5

Сообщение от рони Посмотреть сообщение
Alex2033,
в чём вопрос?
У меня в данном задании сейчас три поля, в два поля я ввожу значения, и в 3 поле отображается их сумма.
Тут же, как я понимаю, нужно сделать 4 поля, записать в эти поля значения, и после этого кликнуть на любые два поля, после чего должно произойти оповещение(alert), то есть окно с суммой значений кликнутых раннее этих самых двух полей.
Если попроще, то у нас 4 поля, и присвоим каждому полю свой номер:
1
2
3
4
Я начинаю кликать, например так: 1-2, после того как я нажал на 2 поле, приходит оповещение с суммой этих двух полей, потом я жму ок, нажимаю 3-2 и тд и тп
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2017, 22:29
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Alex2033 Посмотреть сообщение
Дано 4 поля.
У вас три поля
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2017, 22:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alex2033,
ничего не понял
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2017, 22:41
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<input type="text" id="i1" onblur="f()"><br>
	<input type="text" id="i2" onblur="f()"><br>
	<input type="text" id="i3" onblur="f()"><br>
	<input type="text" id="i4" onblur="f()"><br>
	<script>
		function f(){
			var n1=document.getElementById('i1').value;
			var n2=document.getElementById('i2').value;
			var n3=document.getElementById('i3').value;
			var n4=document.getElementById('i4').value;
			alert(Number(n1)+Number(n2)+Number(n3));
		}
	</script>
</body>
</html>

Так? или я тоже ничего не понял
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2017, 23:54
Новичок на форуме
Отправить личное сообщение для Alex2033 Посмотреть профиль Найти все сообщения от Alex2033
 
Регистрация: 04.06.2017
Сообщений: 5

Сообщение от j0hnik Посмотреть сообщение
<html>
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<input type="text" id="i1" onblur="f()"><br>
	<input type="text" id="i2" onblur="f()"><br>
	<input type="text" id="i3" onblur="f()"><br>
	<input type="text" id="i4" onblur="f()"><br>
	<script>
		function f(){
			var n1=document.getElementById('i1').value;
			var n2=document.getElementById('i2').value;
			var n3=document.getElementById('i3').value;
			var n4=document.getElementById('i4').value;
			alert(Number(n1)+Number(n2)+Number(n3));
		}
	</script>
</body>
</html>

Так? или я тоже ничего не понял
У вас получается, так что после того, как я ввел в первое поле число, зацикливается сообщение, которое выводит это же самое число. Нужно, чтобы вы ввели в одно поле число, потом в другое поле еще число, и после этого выводится сумма этих полей
Ответить с цитированием
  #8 (permalink)  
Старый 05.06.2017, 00:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Alex2033,
не понимаю что вы хотите сделать, но возможно вы хотите так
oninput="f()"

function f(){
           var n1=+document.getElementById('i1').value||0;
            var n2=+document.getElementById('i2').value||0;
            document.getElementById('i3').value=n1+n2;
            }
Ответить с цитированием
  #9 (permalink)  
Старый 05.06.2017, 00:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<input type="text" id="i1" onchange="f()"><br>
	<input type="text" id="i2" onchange="f()"><br>
	<input type="text" id="i3" onchange="f()"><br>
	<input type="text" id="i4" onchange="f()"><br>
	<script>
		function f(){
			var n1=document.getElementById('i1').value;
			var n2=document.getElementById('i2').value;
			var n3=document.getElementById('i3').value;
			var n4=document.getElementById('i4').value;
			alert(Number(n1)+Number(n2)+Number(n3));
		}
	</script>
</body>
</html>

Так?
Ответить с цитированием
  #10 (permalink)  
Старый 06.06.2017, 19:35
Новичок на форуме
Отправить личное сообщение для Alex2033 Посмотреть профиль Найти все сообщения от Alex2033
 
Регистрация: 04.06.2017
Сообщений: 5

Давайте иначе, вернемся к 4 полям:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    	<span>Первая пара полей:</span><br>
        <input id="i1" onkeyup="f1()" style="border-radius: 5px;">+<input id="i2" onkeyup="f1()" style="border-radius: 5px;">
        <br>
        <span>Вторая пара полей:</span><br>
        <input id="i3" onkeyup="f2()" style="border-radius: 5px;">+<input id="i4" onkeyup="f2()" style="border-radius: 5px;">
    </body>
</html>

function f1(){
		        var n1 = document.getElementById('i1').value;
		        var n2 = document.getElementById('i2').value;
		        var sum1 = Number(n1)+Number(n2);
		        alert("Сумма первой пары полей равна: " + sum1);
	        }
	        function f2(){
		        var n3 = document.getElementById('i3').value;
		        var n4 = document.getElementById('i4').value;
		        var sum2 = Number(n3)+Number(n4);
		        alert("Сумма первой пары полей равна: " + sum2);
	        }

Как вы видите, после того как я заполнил первое поле мне выводит alert о сумме, тк второе поле считается как ноль, как сделать так, чтобы только после ввода в оба поля, появлялся alert, просто не совсем удобно получается
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинок при нажатии Antonjrjr Элементы интерфейса 0 29.05.2017 11:57
Заполнение полей при нажатии кнопки alabama343 Events/DOM/Window 1 08.09.2015 16:48
Присваивание класса при нажатии на ссылку skorpeeon Элементы интерфейса 10 25.07.2013 20:07
Блок должен перемещаться из одной точки в другую, а при повторном нажатии обратно Ser12345678 jQuery 2 17.07.2012 12:18
SyntaxHighlighter подсветка при нажатии faraday Общие вопросы Javascript 3 31.03.2012 23:43