function obliczznetto(e) { //pobranie po id ilosci sztuk var ilosc = document.getElementById('ilosc'+e).value; //sprawdzenie czy ilosc to liczba oraz musi byc minimum ustawiona na 1 if (isNaN(ilosc) || (ilosc == 0)) {document.getElementById('ilosc'+e).value = '1'} //pobranie po id pola netto var netto = document.getElementById('netto'+e).value; //pobranie po id pola vat var vat = document.getElementById('vat'+e).value; //zamiana przecinka na kropkę var cena = netto.replace(',', '.') //w razie problemów (nie jest liczbą lub mniejsze od 0) skasowanie zawartości i ustawienie kursora w odpowiednim polu if (isNaN(cena) || (cena < 0)) { document.getElementById('netto'+e).value = '' alert('wpisz cenę netto') document.getElementById('netto'+e).focus() } else { cena=cena * ilosc + vat; document.getElementById('brutto'+e).value = cena; } /*alert(cena*ilosc)*/ }
Jednak nie wiem, jak uzyskać cenę brutto z groszami, dwa miejsca po przecinku... na forum znalazłem taki kod:
cena = new String(Math.round(cena * 100 * (1 + vat))) var dlugosc = cena.length switch (dlugosc) { case 1: cena = '0,0' + cena break case 2: cena = '0,' + cena break default: cena = cena.substring(0, dlugosc - 2) + ',' + cena.substring(dlugosc - 2) }
Jednak po jego zastosowaniu cena jest nieprawidłowa.