Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Przeliczanie liczby z jednego inputa i wstawienie w drugi
XP'ek
post 21.07.2013, 10:51:55
Post #1





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Witam,

mam taki problem ponieważ chcę stworzyć sobie przelicznik, np. wpisując kwotę w złotówkach aby przeliczała na grosze w locie tzn. wpisując kwotę ona od razu aby była w drugim polu.

Stworzyłem sobie coś takiego ale nie za bardzo działa...

Kod
                            $(function(){
                                var price = $("input[name='price']");
                                var kwota = $("input[name='p24_kwota']");
                                price.change(function(){  
                                    var prices = price.val();  
                                    kwota.attr('value', prices * 10);
                                });
                            }
Go to the top of the page
+Quote Post
nospor
post 21.07.2013, 12:40:33
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Do ustawiania wartosci uzywa sie VAL a nie ATTR
2) Pobrana wartosc przy pomocy VAL jest tekstem. Jesli chcesz na tym robic obliczenia to masz uzyc parseInt by otrzymac liczbe.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
XP'ek
post 21.07.2013, 12:45:01
Post #3





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 21.07.2013, 13:40:33 ) *
1) Do ustawiania wartosci uzywa sie VAL a nie ATTR
2) Pobrana wartosc przy pomocy VAL jest tekstem. Jesli chcesz na tym robic obliczenia to masz uzyc parseInt by otrzymac liczbe.



Poprawiłem to tak, działać działa ale podejrzewam że można to zrobić jeszcze lepiej ;]
Kod
    <input type="text" name="price" class="span2" placeholder="Kwota w złotych">
    <input type="hidden" name="p24_kwota">
    
    <script type="text/javascript">
    $(function(){
        var price = $("input[name='price']");
        var kwota = $("input[name='p24_kwota']");
        price.on("change", function(){  
            var prices = price.val();  
            kwota.val(prices * 100);
        });
    });
    </script>
Go to the top of the page
+Quote Post
nospor
post 21.07.2013, 12:51:05
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




NIe wiem jakim cudem ci to dziala. Nie uzyles parseInt i robisz mnozenie na tekscie. Moze twoja wersja przegladarki to obsluguje, ale inna juz moze tego nie robic.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
XP'ek
post 21.07.2013, 12:55:35
Post #5





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


no mam najnowszego chrome haha.gif

a w ten sposób

Kod
    <script type="text/javascript">
    $(function(){
        var price = $("input[name='price']");
        var kwota = $("input[name='p24_kwota']");
        price.on("change", function(){  
            var prices = price.val();  
            kwota.val(parseInt(prices) * 100);
        });
    });
    </script>


Ten post edytował XP'ek 21.07.2013, 12:58:32
Go to the top of the page
+Quote Post
nospor
post 21.07.2013, 12:59:41
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




git


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
XP'ek
post 21.07.2013, 13:00:32
Post #7





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Coś inaczej byś rozwiązał nie jest to na okrętkę ? smile.gif
Go to the top of the page
+Quote Post
lobopol
post 21.07.2013, 13:01:02
Post #8





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


co do mnożenia to zadziała na większości przeglądarek (może nie na ie6), nie zadziała tylko gdy w inpucie wartość nie będzie prawidłowym numerem (np. 100a, 1,, 2 2). Więc lepiej użyć parseInta


--------------------
Go to the top of the page
+Quote Post
XP'ek
post 21.07.2013, 13:03:59
Post #9





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


i tak mimo wszystko jak wpiszę 3,33 lub 3.33 to nie przelicza mi tylko bierze całą wartość 300

ok mam tak powinno być
Kod
    <script type="text/javascript">
    $(function(){
        var price = $("input[name='price']");
        var kwota = $("input[name='p24_kwota']");
        price.on("change", function(){  
            var prices = price.val();  
            kwota.val(parseInt(prices * 100));
        });
    });
    </script>


tylko jak teraz wypadałoby wymuszenie aby użytkownik mógł użyć cyfry i . :]

Ten post edytował XP'ek 21.07.2013, 13:06:50
Go to the top of the page
+Quote Post
nospor
post 21.07.2013, 13:05:46
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Do liczb rzeczywistych jest parseFloat.... slyszales o google albo manualu? tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 17:24