Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Dynamiczna "w locie" zmiana przecinka na kropkę w formularzu
Forum PHP.pl > Forum > Przedszkole
metmusic
Witam,

Mam pytanie - jak zmienić dynamicznie w locie przecinek na kropkę w trakcie wpisywania przez użytkownika liczby w formularzu?
Jeżeli to za bardzo skomplikuje kod (ma być prosty) to jak zamienić już nie "w locie" do późniejszych obliczeń.

W 2 oddzielnych inputach wpisujemy liczby, trzeci input zwraca liczbę po dokonaniu obliczeń.

Prosta funkcja JS:
  1. function funkcja_srednie_zuzycie_paliwa(){
  2. ilosc_paliwa=Number(document.formularz_srednie_zuzycie_paliwa.ilosc_paliwa.value);
  3. dystans=Number(document.formularz_srednie_zuzycie_paliwa.dystans.value);
  4.  
  5. // tutaj powinienem jakoś zamienić przecinki na kropki w liczbach wpisanych w formularzu...
  6.  
  7. srednie_zuzycie_paliwa=Math.round((ilosc_paliwa*100/dystans)*10)/10;
  8. document.formularz_srednie_zuzycie_paliwa.wynik_srednie_zuzycie_paliwa.value=srednie_zuzycie_paliwa + ' L/100km';
  9. }


Kod formularza równie prosty:
  1. <form name="formularz_srednie_zuzycie_paliwa">
  2. Ilość paliwa: <input class="inputbox-form" name="ilosc_paliwa" type="text" />
  3. Dystans: <input class="inputbox-form" name="dystans" type="text" />
  4. Średnie zużycie paliwa: <input class="inputbox-result" name="wynik_srednie_zuzycie_paliwa" type="text" />
  5.  
  6. <input class="button-result" onclick="java script:funkcja_srednie_zuzycie_paliwa();" type="button" value="Oblicz" />
  7. </form>


Oczywiście wszystko działa jak wpisze się np 7.7 a nie 7,7.

Próbowałem kombinować tak:

  1. ilosc_paliwa=ilosc_paliwa.replace(',','.');
  2. dystans=dystans.replace(',','.');


Ale niestety nie bardzo działa...

P.S.
Jak zrobić, żeby w trzecim inpucie wynik pojawiał się "w locie" bez konieczności użycia buttona do wywołania funkcji?
gacek80
Najlepiej za pomocą metody replace().
  1. ilosc_paliwa.replace(',', '.');
  2. dystans.replace(',', '.');

Tylko wydaje mi się, że powinieneś zamienić przecinki na kropki przed stosowaniem funkcji Number().
metmusic
Cytat(gacek80 @ 23.03.2011, 21:23:02 ) *
Najlepiej za pomocą metody replace().
  1. ilosc_paliwa.replace(',', '.');
  2. dystans.replace(',', '.');

Tylko wydaje mi się, że powinieneś zamienić przecinki na kropki przed stosowaniem funkcji Number().



Niestety takie rozwiązanie nie działa - gdziekolwiek bym wstawił. Formularz przestaje robić cokolwiek :/

Poradziłem sobie w ten sposób

  1. ilosc_paliwa = parseFloat(document.formularz_srednie_zuzycie_paliwa.ilosc_paliwa.value.toString().replace(",", "."));
  2. dystans = parseFloat(document.formularz_srednie_zuzycie_paliwa.dystans.value.toString().replace(",", "."));
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.