Изменения элемента суммы на View
Всем привет. Пользователь вносит сумму, из предложенных на экране монет. 1.2.5.10. При нажатии на 1 внесённая сумма увеличивается1. При нажатии на 2 внесённая сумма увеличивается на 2 и тд Если сумма превышает стоимость пользователь получает сдачу. Пользователь вносит сумму, покупает выбранный напиток. Как Мне передать сумму которую пользователь внес. Что сделал Я:
View
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
@foreach (var entity in Model)
{
var idButton+=1;
var buttonIncrease = increase + idButton;
<button id="buttonIncrease" name="increase" type="button" class="btn btn-primary">@entity.Cost</button>
}
@*test*@
<h2>внесенная сумма</h2>
<input type="text" name="field" value="0" />
@*test*@
Array.prototype.forEach.call(document.querySelectorAll('.increase'), function(v) {
v.addEventListener('click', inc);
});
function inc() {
var div = this.parentElement;
var input = div.children.item(1);
input.setAttribute('value', (parseInt(input.getAttribute('value')) + 5).toString());
}
Делаю на Asp.Net. Вот Мои попытки сделать. Оно то вроде и работает. Но не так как Мне хотелось. Прошу перейти и ознакомится с результатом по ссылки. Должны быть 4 кнопки. 1,2,5,10 и для всех нажатий одно поле суммы. и каждый раз к сумме прибавляется результат нажатия кнопки с нужным номиналом. https://jsfiddle.net/hdents7u/3/ |
Цитата:
|
Цитата:
Посмотрите пожалуйста по ссылке https://jsfiddle.net/j94fhmc6/2/ |
BorisJe,
во втором input что должно происходить? |
BorisJe, и я тебе макетик навоял... :D
<style>
.btn {
margin-bottom: 10px;
}
.btn button + button {
margin-left: 10px;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', _ => {
document.querySelectorAll('.btn').forEach(_ => {
const ot = _.parentNode.querySelector('.total')
_.addEventListener('click', _ => {
const o = _.target
if (o.tagName !== 'BUTTON') return
ot.value = +ot.value + +o.value
})
})
})
</script>
<div class='container'>
<div class='btn'>
<button value='1'>1</button>
<button value='2'>2</button>
<button value='5'>5</button>
<button value='10'>10</button>
</div>
<label>
Сумма
<input type='' class='total' />
</label>
</div>
|
Цитата:
|
Цитата:
<input type='' class='total' />Меняется. А если зайти Inspect то значение остается 0 |
BorisJe,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<script>
document.addEventListener('DOMContentLoaded', function() {
let sum = 0;
const field = document.querySelectorAll('[name="field"]');
document.querySelectorAll('.increase, .decrease').forEach(button => {
button.addEventListener('click', function() {
if(button.classList.contains('decrease')) sum = 0;
else sum += +button.textContent;
field.forEach(input => input.value = sum)
})
})
});
</script>
</head>
<body>
<div>
<button class="decrease" type="button">Обноления поля</button>
<input type="text" name="field" value="0" />
<button class="increase" type="button">1</button>
<button class="increase" type="button">2</button>
<button class="increase" type="button">5</button>
<button class="increase" type="button">10</button>
</div>
<div>
тут уже не работает
<input type="text" name="field" value="0" /> тут уже не работает
</div>
</body>
</html>
|
Цитата:
Я думал у тебя таких "секций" будет несколько... |
Цитата:
https://learn.javascript.ru/dom-attr...and-properties |
| Часовой пояс GMT +3, время: 01:34. |