Javascript.RU

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

Перенести переменную из одной функции в другую
Не выходит перенести переменную из одной функции в другую. Другого пути пока не нашел.
Нужно из первой функции во вторую перенести переменную percent.

Заранее спасибо.

<body>
	Количество монет: <input id="gold" type="text" value="100000">
	<br/>
	<br/>
	Сумма(в рублях):
	<input id="result" value="367.5" type="text">
<script>
  var input =  document.getElementById('gold');
  var input2 =  document.getElementById('result');
  input.oninput = function () {
	var percent = ((input.value*3.5)/1000/100*5);
	input2.value = (input.value*3.5)/1000 + percent;    
  };
  input2.oninput = function() {
	input.value = (input2.value/3.5)*1000;    
  };
  
</script>
</body>
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2016, 20:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

EWB,
обьявить percent вне функций?
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2016, 20:10
EWB EWB вне форума
Новичок на форуме
Отправить личное сообщение для EWB Посмотреть профиль Найти все сообщения от EWB
 
Регистрация: 19.01.2016
Сообщений: 5

Таки да ))) Что-то я из ума выжил ))
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2016, 20:22
EWB EWB вне форума
Новичок на форуме
Отправить личное сообщение для EWB Посмотреть профиль Найти все сообщения от EWB
 
Регистрация: 19.01.2016
Сообщений: 5

Хотя нет, тогда вычисления идут неправильные, ежели делаю так:
Мб я где-то с записью намудрил? Т.к. мне нужно чтобы процент рассчитывался от текущего числа в инпуте, а не от стандарта.

<body>
	Количество монет: <input id="gold" type="text" value="100000">
	<br/>
	<br/>
	Сумма(в рублях):
	<input id="result" value="367.5" type="text">
<script>
  var input =  document.getElementById('gold');
  var input2 =  document.getElementById('result');
  var percent = ((input.value*3.5)/1000/100*5);
  input.oninput = function () {	
	input2.value = (input.value*3.5)/1000 + percent;    
  };
  input2.oninput = function() {
	input.value = ((input2.value-percent)/3.5)*1000;    
  };
  
</script>
</body>
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2016, 20:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

EWB,
алгоритм какой подсчёта?
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2016, 20:44
EWB EWB вне форума
Новичок на форуме
Отправить личное сообщение для EWB Посмотреть профиль Найти все сообщения от EWB
 
Регистрация: 19.01.2016
Сообщений: 5

Берем данные что вводят в поле gold и транслируем их измененные в поле result. Все это происходит на лету. Т.е. пишем и в момент написания оно там подсчитывает и меняет все. С передачей из gold в result проблем нет. Но вот при обратной работе, когда передаем из result в gold то есть сложность, т.к. не получается поработать с процентом. Т.е. если в первом случае мы например написал 100 000
То рассчет такой:
(100 000*3.5)/1000 + percent; Где persent это:
((100 000*3.5)/1000/100*5);
Это мы передали из gold в result (в коде это первая функция)
Проблемы со второй, т.к. я туда не могу актуальный persent перенести. Ведь по нашей формуле от 100 000 persent это 17,5 (т.к. 100 000 в стандарте идет в value), и если этот persent вне функции первой, то туда не заходят измененные данные. Скажем, мы поставили 80 000, а persent если вне функции все равно идет от 100 000.
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2016, 21:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

EWB,


<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
	Количество монет: <input id="gold" type="text" value="100000">
	<br/>
	<br/>
	Сумма(в рублях):
	<input id="result" value="367.5" type="text">
<script>
  var input =  document.getElementById('gold');
  var input2 =  document.getElementById('result');
  input.oninput = function() {
    input2.value = (3.5 * input.value / 1000 + 3.5 * input.value / 1000 / 100 * 5).toFixed(2)
}
  input2.oninput = function() {
	input.value =  (input2.value / (3.5 / 1000 + 3.5 / 1000 / 100 * 5)).toFixed(0);
  };

</script>
</body>


</html>
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2016, 23:17
EWB EWB вне форума
Новичок на форуме
Отправить личное сообщение для EWB Посмотреть профиль Найти все сообщения от EWB
 
Регистрация: 19.01.2016
Сообщений: 5

Большое спасибо, а что значит "toFixed"?
Ответить с цитированием
  #9 (permalink)  
Старый 19.01.2016, 23:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

EWB,
Количество цифр после десятичного знака
http://javascript.ru/Number/toFixed
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно скопировать OnMouseOver с одной ссылки на другую Help ilya20000 jQuery 3 29.01.2010 16:01
Использование одной функции для элементов с разными ID Ferroks Общие вопросы Javascript 10 11.09.2009 08:51
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59
Сохранение данных для передачи с одной страницы в другую Andrey Freeman Общие вопросы Javascript 6 15.09.2008 22:32
Перевод числа из одной СС в другую News Общие вопросы Javascript 3 08.09.2008 09:46