Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne mnożenie razy 2
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
verio
Otóż... w związku z budowaniem pewnej strony napotkałem na problem. Jest nim konieczność napisania prostego skryptu w javascript. Jednak proste nie dla każdego znaczy tyle samo, szczególnie dla kogoś takiego jak ja.


Mam podane 2 pola input. Pierwszy to input, w którym wprowadzam liczbę. W drugim mam otrzymać wynik mnożenia liczby z pierwszego inputa razy 2. Wszystko to dynamicznie, bez klikania żadnych buttonów, submitów etc. Mimo moich starań otrzymałem błędnie działający skrypt:
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. var mnozenie = getElementById('ilosc') * 2;
  3. function(licz) {
  4. getElementById('koszt').value = mnozenie;
  5. }
  6. </script>
[JAVASCRIPT] pobierz, plaintext


  1. <input type="text" id="ilosc" name="ilosc" maxlength="3" class="textbox" style="text-align:center;" onChange="licz()" />
  2. <input type="text" name="koszt" readonly class="textbox" style="text-align:center;" />


Proszę nie zwracać uwagi na zbędne elementy tj. klasy CSS. Chodzi mi o samo działanie skryptu.

///edit kolorowanie składni
Blame
Przyda ci się parseInt winksmiley.jpg
flashdev
Kod
// parseInt lub parseFloat wedlug uznania
var mnozenie = parseInt(getElementById('ilosc').value) * 2;
verio
Czyli obecnie kod javascript wygląda tak:

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. var mnozenie = parseInt(getElementById('ilosc').value) * 2;
  3. function(licz) {
  4. getElementById('koszt').value = mnozenie;
  5. }
  6. </script>
[JAVASCRIPT] pobierz, plaintext


Nadal jednak nie działa przeliczanie. Drugi input jest wciąż pusty.
flashdev
Cytat(verio @ 31.08.2010, 11:19:57 ) *


[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. alert(getElementById);
  3. alert(document.getElementById);
  4. function licz() {
  5. var mnozenie = parseInt(document.getElementById('ilosc').value) * 2;
  6. document.getElementById('koszt').value = mnozenie;
  7. }
  8. </script>
[JAVASCRIPT] pobierz, plaintext
Piotrek05
Musisz zdefiniować nazwę funkcji a Ty definiujesz argument podawany do niej.
Ja bym zrobił to tak:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. <script type="text/javascript">
  3. function licz () {
  4. var mnozenie = parseInt(getElementById('ilosc').value) * 2;
  5. getElementById('koszt').value = mnozenie;
  6. }
  7. </script>
[JAVASCRIPT] pobierz, plaintext


I użył zamiast zdarzenia onChange zdarzenia onkeyup.
verio
  1. <input type="text" name="koszt" readonly class="textbox" style="text-align:center;" />


zjadłem id="koszt", ale i z tym by nie poszło bez Waszej pomocy

Skrypt działa, dziękuję wszystkim za odpowiedzi. Temat do zamknięcia.
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.