Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.12.2021, 19:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

BorisJe, т.е. сумма меняется не только кнопками, но и руками тоже?

Сообщение от BorisJe
Если Изменения делаю с кнопки то ноль на массу
Ну тут все просто!
<!DOCTYPE html>
<html>
<head>
<script src='https://code.jquery.com/jquery-latest.min.js'></script>
<!--
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
<script src='tmp.js'></script>
-->
<style type='text/css'>
</style>
<script>
$(_ => {
	const o = $('.total')
	o.on('input', e => {
		alert('Changed!');
	})
	$('button').on('click', e => {
		o.val(+o.val() + 10)
		o.trigger('input')
	})
})
</script>
</head>
<body>
<button>+10</button> 
<label>
	Сумма
	<input name="total" type="text" class="total" />
</label>
</body>
</html>
Ответить с цитированием
  #12 (permalink)  
Старый 08.12.2021, 01:19
Аспирант
Отправить личное сообщение для BorisJe Посмотреть профиль Найти все сообщения от BorisJe
 
Регистрация: 03.12.2021
Сообщений: 66

Сообщение от ksa Посмотреть сообщение
BorisJe, т.е. сумма меняется не только кнопками, но и руками тоже?


Ну тут все просто!
<!DOCTYPE html>
<html>
<head>
<script src='https://code.jquery.com/jquery-latest.min.js'></script>
<!--
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
<script src='tmp.js'></script>
-->
<style type='text/css'>
</style>
<script>
$(_ => {
	const o = $('.total')
	o.on('input', e => {
		alert('Changed!');
	})
	$('button').on('click', e => {
		o.val(+o.val() + 10)
		o.trigger('input')
	})
})
</script>
</head>
<body>
<button>+10</button> 
<label>
	Сумма
	<input name="total" type="text" class="total" />
</label>
</body>
</html>
Не, сумма только с кнопки, руками нельзя вносить. У нас же кофейный автомат.
Ответить с цитированием
  #13 (permalink)  
Старый 08.12.2021, 04:51
Аспирант
Отправить личное сообщение для BorisJe Посмотреть профиль Найти все сообщения от BorisJe
 
Регистрация: 03.12.2021
Сообщений: 66

Сообщение от BorisJe Посмотреть сообщение
Не, сумма только с кнопки, руками нельзя вносить. У нас же кофейный автомат.
Да вот только сумму которая пришла туда, ну жмакнули Мы на 5 ровно 3 раза, там 15 в тотал.
дальше у нас есть хтмл

Код:
@foreach (var item in Model)

                    {

                        i++;

                        <tr>

                            <input type="hidden" name="id" value=@item.Id />

                            <td><input asp-for="@item.Name" value="@item.Id" name="Product" type="radio"></td>

                            <br />

                          <td>@item.Name</td>

                         <td>@item.Price</td>

                            <td style="width: 10%">

                                <button name="clickonbutton" type="submit" value="@item.Name"><img class="center" srcset="~/images/@item.TitleImagePath" src="@Url.Action("Purchase", "User", new {item.Id })" style="width: 128px; height: 96px;vertical-align: bottom"></button>

                            </td>

                            <td>@item.Description</td>

                             

                        </tr>

                    }
тут мы заполняем стоимость <td>@item.Price</td>
Мне хотелось чтобы при изменении Моего поля тотал проверились все элементы прайс и если тотал < прайс тогда оставить заблокированым. Ну или цветом для наглядности вывести или картинку изменить на "заблокировано не достаточно средств". Ну это уже другое.
Что сделал Я.
$(document).ready(function () {

        const res = document.querySelector('.result');

        const text = document.querySelector('#total');

        text.addEventListener('input', e => res.innerHTML = e.target.value);

    });

Но при изменинии с кнопки ничего не происходит, только если руками. Если начинать с начала, надо понять как делать определить изменение. Дальше найти прайса которые выше внесенной суммы, дальше уже заблокировать.
Ответить с цитированием
  #14 (permalink)  
Старый 08.12.2021, 08:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

BorisJe, если сумма меняется только с кнопок - нет смысла проверять изменение суммы, т.к. ее руками никто не меняет.
Все твои проверки должны выполняться по нажатию кнопок.

Нажали кнопку - увеличь сумму, проверь доступность напитков.
Ответить с цитированием
  #15 (permalink)  
Старый 08.12.2021, 10:17
Аспирант
Отправить личное сообщение для BorisJe Посмотреть профиль Найти все сообщения от BorisJe
 
Регистрация: 03.12.2021
Сообщений: 66

Сообщение от ksa Посмотреть сообщение
BorisJe, если сумма меняется только с кнопок - нет смысла проверять изменение суммы, т.к. ее руками никто не меняет.
Все твои проверки должны выполняться по нажатию кнопок.

Нажали кнопку - увеличь сумму, проверь доступность напитков.
Значит делаю так.
Изменяю сумму, читаю все цены, если ок то ставлю доступность если нет то блокирую?
Ответить с цитированием
  #16 (permalink)  
Старый 08.12.2021, 11:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от BorisJe
Изменяю сумму, читаю все цены, если ок то ставлю доступность если нет то блокирую?
Если ты меня понял правильно и я тебя - то именно так.
Ответить с цитированием
  #17 (permalink)  
Старый 08.12.2021, 11:35
Аспирант
Отправить личное сообщение для BorisJe Посмотреть профиль Найти все сообщения от BorisJe
 
Регистрация: 03.12.2021
Сообщений: 66

Сообщение от ksa Посмотреть сообщение
Если ты меня понял правильно и я тебя - то именно так.
document.addEventListener('button', e => {
  console.log(`Форма: ${e.target.parentNode.name}, инпут: ${e.target.name}`)
})

Пододёт ли этот код для контроля нажатий кнопок?
Ответить с цитированием
  #18 (permalink)  
Старый 08.12.2021, 11:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от BorisJe
Пододёт ли этот код для контроля нажатий кнопок?
Я не слышал про такое событие на кнопках - button.
Ответить с цитированием
  #19 (permalink)  
Старый 08.12.2021, 11:43
Аспирант
Отправить личное сообщение для BorisJe Посмотреть профиль Найти все сообщения от BorisJe
 
Регистрация: 03.12.2021
Сообщений: 66

$(document).ready(function () {
        $(_ => {
            const o = $('.total');
            o.on('input',e => {
                alert('changedTotal');
            });
            $('button').on('click',e => {
                o.val(+o.val() + 10);
                o.trigger('input');
            });
        });
    });

Работает 100% если нажимаю бутон, срабатывает. А как Мне теперь отследить что находиться в поле тотал?
Ответить с цитированием
  #20 (permalink)  
Старый 08.12.2021, 11:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

BorisJe, пока я тебе делал пример на нативном JS, ты уже в жиКвери ускакал...
Ты уже определяйся на чем будешь работать дальше.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--
<script src="https://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
-->
<style>
</style>
<script>
document.addEventListener('DOMContentLoaded', _ => {
	document.querySelectorAll('button').forEach(_ => {
		_.addEventListener('click', e => {
		alert(`Форма: ${e.target.parentNode.name}, инпут: ${e.target.name}`)
		})
	})
})
</script>
</head>
<body>
<form name='frm-1'>
	<button name='btn-1-1'>Item 1 1</button>
	<button name='btn-1-2'>Item 1 2</button>
</form>
<form name='frm-2'>
	<button name='btn-2-1'>Item 2 1</button>
	<button name='btn-2-2'>Item 2 2</button>
</form>
</body>
</html>
Ответить с цитированием
Ответ



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

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