• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Aktualizacja portfela JavaScript

VPS Starter Arubacloud
+1 głos
293 wizyt
pytanie zadane 11 maja 2021 w JavaScript przez ShockWave Bywalec (2,350 p.)
edycja 11 maja 2021 przez ShockWave

Cześć, mam pytanie jak mogę zaktualizować ilość pieniędzy w portfelu po edycji inputa.

let income = {
            przychod: testFormIncome.value,
            kwotaIncome: testFormValue.value,
        };

//tutaj dodaje wartość do portfela

incomes += parseFloat(income.kwotaIncome);
        incomesSum.innerHTML = "Suma przychodów: " + incomes + " zł";
        wallet = incomes - expenses;
        howSpendMoney.innerHTML = "Można wydać: " + wallet + " zł";

//tutaj próbuje tą wartość zedytować

btnSave.addEventListener("click", (e) =>{
                li.innerText = `${inputName.value} - ${inputValue.value} zł`;
                li.appendChild(btnEdit);
                li.appendChild(btnRemoveIncome);
                
                
                incomes += parseFloat(inputValue.value);
                incomesSum.innerHTML = "Suma przychodów: " + incomes + " zł";
                wallet = incomes - expenses;
                howSpendMoney.innerHTML = "Można wydać: " + wallet + " zł";
            });

 

3 odpowiedzi

0 głosów
odpowiedź 12 maja 2021 przez cava96 Gaduła (3,940 p.)
Użyj zdarzenia onkeypress (wciśnięcie klawisza) lub onkeydown (puszczenie klawisza) dla danego inputu
0 głosów
odpowiedź 12 maja 2021 przez JAKUBW Nałogowiec (33,470 p.)
Użyj zdarzenia oninput (jakakolwiek zamiana w inpucie) lub onchange (zatwierdzenie dla danego inputu)
komentarz 12 maja 2021 przez ShockWave Bywalec (2,350 p.)
@JAKUBW jeżeli ktoś nie poda rozwiązania matematycznego to spóbuję to z nasłuchiwaniem eventu.
0 głosów
odpowiedź 12 maja 2021 przez VBService Ekspert (251,250 p.)

Możesz też wykorzystać zdarzenie HTMLElement.blur()

Przykład, aktualizowanie po "utraceniu" kursora ("wyjściu") z input-a lub naciśnięciu Enter-a.  smiley

 

<label for="income">Twój przychód:</label>
<input type="number" id="income" name="income" min="0">
<div class="wallet">Twój porfel: <span>0</span> zł</div>
label {
  display: block;
  width: 8em;
}
input[type=number] {
  width: 8em;
  margin: 0.25em 0;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -moz-appearance: textfield;
  appearance: textfield;
  -webkit-appearance: none;
  margin: 0;
}
.wallet {
  margin: 1em 0;
}
window.onload = () => {
  const input_income = document.querySelector('#income');
  const wallet_value = document.querySelector('.wallet span');
  
  input_income.focus();
  
  input_income.addEventListener('focus', () => {
    input_income.value = '';
  })
  
  input_income.addEventListener('blur', updateWallet)
  
  input_income.addEventListener('keydown', (e) => {
    if (e.key === 'Enter' || e.keyCode === 13) {
      updateWallet();
      input_income.value = '';      
    }
  })
  
  function updateWallet() {
    const wallet_current_value = wallet_value.innerText * 1;
    const income_value = input_income.value.trim() * 1;
    if (income_value != '') {
      wallet_value.textContent = parseFloat(wallet_current_value + income_value).toFixed(2);
    }    
  }
}

 

komentarz 12 maja 2021 przez ShockWave Bywalec (2,350 p.)

@VBService, problem polega raczej na tym że nie wiem jak matematycznie rozwiązać to, żeby portfel się aktualizował o tą wartość po edycji. 

komentarz 12 maja 2021 przez VBService Ekspert (251,250 p.)
Nie bardzo rozumiem w jakim sensie "matematycznym", masz problem ze zwracanymi wartościami z pól (input)?
komentarz 12 maja 2021 przez ShockWave Bywalec (2,350 p.)
https://jsfiddle.net/4j6eod1q/11/

Spróbuj zedytować jakąś wartość w przychodach tak, żeby zmieniła się wartość i zapisz ją. Portfel się źle aktualizuje.
komentarz 12 maja 2021 przez ShockWave Bywalec (2,350 p.)
Już rozwiązałem problem, ciężko mi wytłumaczyć rozwiązanie. Więc gdyby ktoś chciał znać odp to możemy się złapać na jakimś zoomie. Ogólnie to trzeba odjąć od wartości zapisanej w dataset wartość którą mamy po edycji.

Podobne pytania

0 głosów
1 odpowiedź 59 wizyt
0 głosów
0 odpowiedzi 70 wizyt
pytanie zadane 3 grudnia 2023 w Matematyka, fizyka, logika przez RufinB Obywatel (1,830 p.)
0 głosów
1 odpowiedź 91 wizyt
pytanie zadane 30 czerwca 2023 w SQL, bazy danych przez Blds Użytkownik (830 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...