Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dynamiczne mnożenie razy 2, ktoś sprawdzi czemu mi nie działa?
verio
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 23.01.2007
Skąd: Wołomin

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


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

Ten post edytował verio 31.08.2010, 10:16:46
Go to the top of the page
+Quote Post
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Przyda ci się parseInt (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
flashdev
post
Post #3





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Kod
// parseInt lub parseFloat wedlug uznania
var mnozenie = parseInt(getElementById('ilosc').value) * 2;
Go to the top of the page
+Quote Post
verio
post
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 23.01.2007
Skąd: Wołomin

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


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.
Go to the top of the page
+Quote Post
flashdev
post
Post #5





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


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


Ten post edytował flashdev 31.08.2010, 10:43:12
Go to the top of the page
+Quote Post
Piotrek05
post
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 2
Dołączył: 25.04.2010

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


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.

Ten post edytował Piotrek05 31.08.2010, 10:40:31
Go to the top of the page
+Quote Post
verio
post
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 23.01.2007
Skąd: Wołomin

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


  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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 22:09