Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не получается вывести число в input JQuery (https://javascript.ru/forum/jquery/83336-ne-poluchaetsya-vyvesti-chislo-v-input-jquery.html)

Espidsdfeer 18.11.2021 21:05

Не получается вывести число в input JQuery
 
Необходимо написать калькулятор. Все вроде получилось, но вот с кнопкой M много вопросов. Если поле памяти пусто, нужно вывести в него результат, а если не пусто, то прибавить к нему полученный результат. Много что попробовал, но выводит либо NaN, либо object htmlinputelement . Уже долго не могу понять, где ошибка.
За дерьмокод прошу прощения, только учусь.
Помогите, пожалуйста, разобраться.

<!DOCTYPE html>
<head>
	<title>Страница</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
	<script type="text/javascript" src="/../js/calculator.js"></script>
</head>
<body>
	<form id = "calc">
		<label>Первое число:</label><input type="text" name="first"/>
		<label>Второе число:</label><input type="text" name="second"/>
        <input type="button" name = "plus" value="+"/>
		<input type="button" name = "minus" value="-"/>
		<input type="button" name = "div" value="/"/>
		<input type="button" name = "umn" value="*"/>
		<input type="button" name = "pow" value="x^Y"/>
		<input type="button" name = "mry" value="M"/>
		<input type="button" name = "clean" value="C"/>
		<label>Результат:</label><input readonly type="text" name="result" id = "result" placeholder="Ответ"/>
		<label>Память:</label><input readonly type="number"  id="mem" name="mem" placeholder="Память"/>
	</form>
</body>
<style>
    input {
	outline:none;
}

div {
	margin:10px 0;
	text-align:center;
}

	div label {
		margin:0 10px 0 0;
	}

	div input[type=text] {
		padding:6px 10px;
		border-radius:10px;
		border:1px solid #000033;
	}
	
	div input[type=button] {
		padding:6px 10px;
		border-radius:10px;
		font-size:16px;
		border:1px solid #000033;
		cursor:pointer;
	}
</style>
<script> 
var output;
var NewRes;
	$("input[name=plus]").click( function () { 
		var first = $("input[name=first]").val() * 1;
		var second = $("input[name=second]").val() * 1; 
		var result; 
			result = +first + second;
			NewRes = result;
			output = $("input[name=result]").val(result);
});
$("input[name=minus]").click( function () { 
	var action = $("select[name=action]").val(); 
		var first = $("input[name=first]").val() * 1; 
		var second = $("input[name=second]").val() * 1; 
		var result; 
		var output;
			result = Number(first) - Number(second);
			NewRes = result;
			output = $("input[name=result]").val(result);
			window.alert(result);
});
$("input[name=div]").click( function () { 
		var first = $("input[name=first]").val() * 1; 
		var second = $("input[name=second]").val() * 1; 
		var result; 
		var output;
			result = first / second;
			NewRes = result;
			output = $("input[name=result]").val(result);
});
$("input[name=pow]").click( function () { 
		var first = $("input[name=first]").val() * 1; 
		var second = $("input[name=second]").val() * 1;
		var result; 
		var output;
			result = +Math.pow(first, second);
			NewRes = result;
			output = $("input[name=result]").val(result);
});
$("input[name=umn]").click( function () { 
		var first = $("input[name=first]").val() * 1; 
		var second = $("input[name=second]").val() * 1; 
		var result; 
		var output;
			result = first * second;
			NewRes = result;
			output = $("input[name=result]").val(result);
});
$("input[name=mry]").click(function() {
var Memory;
var OutMem;
	if (mem < 1) {
		Memory = result;
		window.alert(Memory);	
		OutMem = $("input[name=result]").val(Memory);
	}
	});				
$("input[name=clean]").click(function() {
	$('#calc')[0].reset();
});
</script>
</html>

рони 19.11.2021 00:06

Espidsdfeer,
что такое mem строка 102?

рони 19.11.2021 00:15

Цитата:

Сообщение от Espidsdfeer
Если поле памяти пусто, нужно вывести в него результат, а если не пусто, то прибавить к нему полученный результат.

$("input[name=mry]").click(function() {
mem.value = (+mem.value || 0) + (+result.value||0);
    });


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