Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Нужна помощь с калькулятором (https://javascript.ru/forum/jquery/12799-nuzhna-pomoshh-s-kalkulyatorom.html)

Hunt3r 03.11.2010 16:38

Нужна помощь с калькулятором
 
Всем привет. Начал изучать Jquery и вот пытаюсь написать калькулятор. Проблема в том, что у меня 1но поле для ввода цифр, и не могу найти с помощью какого метода я могу цифры вводимые с интерфейса калькулятора, суммировать(т.е. чтоб я мог ввести 455 например). Когда я нажимаю на новую цифру, оно предыдущую заменяет на новую, тоесть надо где-то хранить предыдущее значение, внизу кусочек кода, думаю вы всё поймёте. спасибо за помощь заранее.

$(document).ready(function(){
Calculate();
});

function Calculate(){
var main_field = $('.main-field input');
var numbers = $('.btn-list input');
numbers.click(function(){
var value_numbers = $(this).val();
var current_values = main_field.val(value_numbers);
});
}

micscr 03.11.2010 17:24

var current_values =  main_field.val() + String(value_numbers);
main_field.val(current_values)

Hunt3r 03.11.2010 18:41

Премного благодарен :)

Hunt3r 08.11.2010 16:06

Снова застрял.. :( Нужна помощь..
<div id="wrapper">
		<form action="#">
			<fieldset>
				<div class="main-field">
					<input type="text" />
				</div>
				<div class="section-holder">
					<ul class="btn-list">
						<li><input type="button" value="7" /></li>
						<li><input type="button" value="8" /></li>
						<li><input type="button" value="9" /></li>
						<li><input type="button" value="4" /></li>
						<li><input type="button" value="5" /></li>
						<li><input type="button" value="6" /></li>
						<li><input type="button" value="1" /></li>
						<li><input type="button" value="2" /></li>
						<li><input type="button" value="3" /></li>
						<li><input type="button" class="wide-btn" value="0" /></li>
						<li><input type="button" value="." /></li>
					</ul>
					<ul class="action-btn-list">
						<li><input type="button" value="CE" class="btn-clear" /></li>
						<li><input type="button" class="btn-sqrt" value="&radic;" /></li>
						<li><input type="button" class="btn-divide" value="/" /></li>
						<li><input type="button" class="btn-summ" value="+" /></li>
						<li><input type="button" class="btn-multi" value="*" /></li>
						<li><input type="button" class="btn-minus" value="-" /></li>
						<li><input type="button" class="wide-btn btn-compare" value="=" /></li>
					</ul>
				</div>
			</fieldset>
		</form>
	</div>


var first;

$(document).ready(function(){
	Calculate();
});

function Calculate(){
	var main_field = $('.main-field input');
	var numbers = $('.btn-list input');
	var actions_btns = $('.btn-divide, .btn-summ, .btn-multi, .btn-minus')
	ClickNumbers(numbers, main_field);
	
	actions_btns.click(function(){
		first = main_field.val();
		main_field.val('');
	});
	
	//Function Summ
	var btn_summ = $('.btn-summ');
	
	
	//Function Clear
	var btn_clear = $('.btn-clear');
	btn_clear.click(function(){
		main_field.val('');
	});
	
	//Function sqrt
	var btn_sqrt = $('.btn-sqrt');
	btn_sqrt.click(function(){
		var value_sqrt = Math.sqrt(main_field.val());
		main_field.val(value_sqrt);
	});
	
	//Function compare
	var btn_compare = $('.btn-compare');
	
	btn_compare.click(function(){
		var current = main_field.val();
		//var summ = parseInt(first) + parseInt(current);
		//var divide = parseInt(first) / parseInt(current);
		//var minus = parseInt(first) - parseInt(current);
		var multiply = parseInt(first) * parseInt(current);
		main_field.val(multiply);
	});
}

function ClickNumbers(numbers, main_field){
	numbers.click(function(){
		var value_numbers = $(this).val();
		var current_values =  main_field.val() + String(value_numbers);
		main_field.val(current_values);
	});
}


Вообщем мне надо как-то сделать, чтобы например при клике на +, оно запоминало это действие, и потом когда я ввёл 2ю цифру, и при нажатиии следом на равно оно вызывало фунцию сумиррования, и так для каждого действия (+ - * /). Подскажите, как бы мне такое сообразить.. Не обращайте внимания на
btn_compare.click(function(){
var current = main_field.val();
//var summ = parseInt(first) + parseInt(current);
//var divide = parseInt(first) / parseInt(current);
//var minus = parseInt(first) - parseInt(current);
var multiply = parseInt(first) * parseInt(current);
main_field.val(multiply);
});
это так я пробывал эти все функции в действии.

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

DooMer 08.11.2010 17:10

Цитата:

Сообщение от Hunt3r (Сообщение 78037)
Снова застрял.. :( Нужна помощь..
var multiply = parseInt(first) * parseInt(current);

а если дробное число ?

Запоминайте мат знаки в переменную и если переменная не пустая то выполняйте =
Помоему уж оч банальная учебная задача

Hunt3r 08.11.2010 17:18

Я имел ввиду, как отлавливать события или создать условие, что если нажата кнопка сложения, что при нажатии следующим действием на равно, вызывалась функция сложения к примеру и тд.
спасибо


Часовой пояс GMT +3, время: 15:46.