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

Aktualizacja portfela JavaScript

Object Storage Arubacloud
+1 głos
304 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 (253,340 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 (253,340 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ź 68 wizyt
0 głosów
0 odpowiedzi 75 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,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...