Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Różnica wartości z funkcji
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
przesq
Witam,

Niedawno zacząłem przygodę z jquery i mam mały problem. Poradziłem sobie z mnożeniem i z dodawaniem wartości z inputów typu text jednak potrzebuję jeszcze obliczyć różnice = mnożenie - sumowanie.
1.Pierwsze 2 inputy obliczają masę (mnożenie) - wymagane wpisanie poprawnej wartosci oraz wprowadzenie wartosci
2.Pozostałe 10 obliczają sumę wprowadzonych wartości - wymagane wpisanie poprawnej wartosci
Potrzebuję dorobić do tego obliczanie różnicy punktów 1 i 2 tak aby użytkownik widział ile rozpisał w tych pozostałych, ewentualnie może zostać tak jak teraz czyli pokazuje mu się suma i widzi czy się zgadza z punktem 1 czy nie.

Jak dorobić do tego aby pokazał mu się komunikat pod obliczonymi wartościami (bez blokowania przesyłania formularza) że wartości z p1 i p2 są przekroczone lub jeszcze troche brakuje.
Jak sprawdzić czy chodź jeden z 10 inputów (nie wymagany żaden, gdyż można wszystko wpisać w 1 ) jest uzupełniony.

dołączam
Kod
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.metadata.js" type="text/javascript"></script>
<script src="js/jquery.validate.js" type="text/javascript"></script>

następnie
Kod
<script>
                    $(document).ready(function(){
                
                        //iterate through each textboxes and add keyup
                        //handler to trigger sum event
                        $(".sumuj").each(function() {
                            $(this).keyup(function(){
                                wsm();
                            });
                        });
                        $(".pomnoz").each(function() {
                            $(this).keyup(function(){
                                masa();
                            });
                        });
                    });
                
                    function wsm() {
                
                        var sum = 0;
                        //iterate through each textboxes and add the values
                        $(".sumuj").each(function() {
                
                            //add only if the value is number
                            if(!isNaN(this.value) && this.value.length!=0) {
                                sum += parseFloat(this.value);
                            }
                
                        });
                        //.toFixed() method will roundoff the final sum to 2 decimal places
                        $("#wsm").html(sum.toFixed(2));
                    }
                    function masa() {
                
                        var mn = 1;
                        //iterate through each textboxes and add the values
                        $(".pomnoz").each(function() {
                
                            //add only if the value is number
                            if(!isNaN(this.value) && this.value.length!=0) {
                                mn *= parseFloat(this.value);
                            }
                
                        });
                        //.toFixed() method will roundoff the final sum to 2 decimal places
                        $("#masailosc").html(mn.toFixed(2));
                    }
                    </script>
                    
                    Ilosc * Masa = <b><span id="masailosc">0</span></b><br />
                    Pozostale sortymenty (suma) = <b><span id="wsm">0</span></b>

jeden z inputów - pozostałe 9 różnią się name ab0, ac0, ad0 ...
Kod
<input type="text" class="sumuj" name="aa0" validate="number: true" maxlength="7" size="10" value="'; if (isset($_POST['aa0'])) echo $_POST['aa0']; echo '" />
kamil4u
Cytat
Jak dorobić do tego aby pokazał mu się komunikat pod obliczonymi wartościami (bez blokowania przesyłania formularza) że wartości z p1 i p2 są przekroczone lub jeszcze troche brakuje.
Nie wiem czy dobrze rozumiem, ale wstaw gdzieś w kodzie
  1. <span id="test"></span>
i gdzieś w JS:
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById('test').innerHTML = 'Twój komunikat';
[JAVASCRIPT] pobierz, plaintext


I poczyta o DOM i zdarzeniu onload.


Cytat
Jak sprawdzić czy chodź jeden z 10 inputów (nie wymagany żaden, gdyż można wszystko wpisać w 1 ) jest uzupełniony.

Pobierz elementy input poprzez klasę( getElementsByClassName ) i w pętli sprawdzaj po kolei czy wartość value jest wpisana.
przesq
Kod
document.getElementById('test').innerHTML = 'Twój komunikat';


Chodzi mi o to, że 'Twój komunikat' powinien brzmieć Pozostało do rozpisania : ... i tu mamy różnicę mn - sum

Jeżeli masa całkowita to np 10 (ilosc * masa)
a suma wpisanych wartości w tych 10 inputach wynosi 8 to podpowiedź powinna brzmieć:

Pozostało: 2
Nie wiem jak wyciągnąć z tych dwóch funkcji wartości mn i sum
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.