Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] jak zliczyć wartość i wyświetlić?
Forum PHP.pl > Forum > Przedszkole
dwwa
mam prosty skrypt w jquery, która ma zsumować 2 pola z formularza i jak dam w funkcji jquery takie coś:

alert(pole1+pole2);

to działa, a teraz chcę zrobić żeby po kliknięciu w submit pokazała się pod formularzem suma dwóch pół o których mowa, ale nie wiem jakiej funkcji jQuery do tego użyć... chodzi mi o samo wyświetlanie tekstu po kliknięciu, tak jak w php echo jest ;d
  1. <script type="text/javascript">
  2.  
  3. $(document).ready(
  4. function() {
  5. $("#count").click(function() {
  6. var total = 0;
  7. var weight = parseFloat($("#weight").attr('value'));
  8. var height = parseFloat($("#height").attr('value'));
  9. if (!weight || !height) {
  10. alert('Wypełnij wszystkie pola');
  11. return false;
  12. }
  13. var total = ((weight)/((height * weight)/10000));
  14.  
  15. // pokaz total
  16. $("#result").JAKAFUNKCJA(total);
  17.  
  18. });
  19. }
  20. )
  21.  
  22. </script>

  1. <form id="formularz" name="" method="post">
  2. pole1: <input type="text" name="weight" id="weight" />
  3. pole2: <input type="text" name="height" id="height" />
  4. <input type="submit" value="oblicz" name="" id="count" /><br />
  5. <div id="result" style="display: none;">tutaj suma</div>
  6. </form>

wiem że to prosta sprawa ;d z góry dzięki za pomoc.
nospor
Kod
jQuery('#iddivadoktoregocheszwpisac').html('to co chcesz wpisac a na przyszlosc czytaj dokumentacje, skoro juz uzywasz jquery');
dwwa
ok, niby działa, problem w tym, że od razu znika mi ten tekst ;d po 0,1 sek. biggrin.gif co może być nie tak?
  1. $("#message").html(message);
nospor
No jesli pokazujesz to na submicie to nic dziwnego ze znika, skoro submit wysyla formularz czyli de facto przładowuje strone smile.gif
Skoro nie chcesz wysyłać forma to daj na submicie w onlick jeszcze return false;
dwwa
ok, działa, a możesz mi powiedzieć czemu wyskakuje mi "NaN" jak nie podam żadnych wartości w polach formularza?
nospor
A skad ja mam wiedziec jak ty te dane pobierasz? No wrozyc mam?

No dobra, wróże:
uzywasz parseInt lub czegoś podobnego i logiczne, ze jak nie ma zadnej wartosci to funkcja nie ma co parsowac i pluje błędem
dwwa
var weight = parseFloat($("#weight").attr('value'));
var height = parseFloat($("#height").attr('value'));

było wyżej przecież biggrin.gif

jak temu zapobiec?
konrados
No sprawdź wcześniej, przed parseFloat czy wartość nie jest pusta, takie coś powinno zadziałać:

  1. if($("#weight").attr('value') == "") {
  2. alert('wpisz wartości');
  3. return false;
  4. }
nospor
Cytat
było wyżej przecież
ślepne na starość sad.gif ale wróżę dobrze biggrin.gif
dwwa
działa, a czemu mam tak, że jak wprowadzę jakieś dane do pól i kliknę na submit, a później zmienię dane w polu pierwszym, to po kliknięciu na submit nic się nie dzieje? dopiero jak wprowadzę dane do pola 1 i pola 2 i kliknę submit to jest ok.

a nie, dzieje się tak tylko z polem 1.
konrados
Ale co dokładnie "nie działa"? Zauważyłeś, że sprawdzałem tylko weight, winno być raczej:

if($("#weight").attr('value') == "" || $("#height").attr('value') == "")...

A w ogóle to:

1. umieść to gdzieś w sieci
2. zainstaluj sobie firebuga
dwwa
  1. <script type="text/javascript">
  2.  
  3. $(document).ready(
  4. function() {
  5. $("#count").click(function() {
  6. var total = 0;
  7. var weight = $("#weight").attr('value');
  8. var height = $("#height").attr('value');
  9.  
  10. if (weight == "" || height == "") {
  11. message = "Wypełnij wszystkie pola";
  12. }
  13. else {
  14. var weight = parseFloat(weight);
  15. var height = parseFloat(height);
  16. }
  17.  
  18. var total = ((weight)/((height * weight)/10000));
  19.  
  20.  
  21. $("#result").html(total.toFixed(3));
  22. $("#message").html(message);
  23. return false;
  24. });
  25. }
  26. )
  27.  
  28. </script>

coś takiego mam i teraz jak wprowadzę w pole 1 wartość np. 50, a w pole 2 wprowadzę 150 wyskakuje mi jakiś tam wynik i teraz jak w pole 1 wpiszę np. 10 wynik jest taki sam, tak jakby nic się nie działo, jak wprowadzę jakąś inną wartość w pole 2 i kliknę w submita to jest ok..

nie mam gdzie tego wrzucić...
konrados
No wynik jest taki sam, bo tak wynika z Twojego wzoru:

var total = ((weight)/((height * weight)/10000));

cokolwiek podstawisz za weight, jeśli nie zmienisz height no to tak sobie myślę, że wynik uzyskasz identyczny:)

Co Ty tam w ogóle obliczasz?
dwwa
nieważne co biggrin.gif to nie jest istotne

ciągle wyskakuje mi ten "NaN" :/
konrados
No a spójrz na ten fragment:

if (weight == "" || height == "") {
message = "Wypełnij wszystkie pola";
}

Czy on zapobiega temu, że potem robisz

var total = ((weight)/((height * weight)/10000));

?

Tak więc zrób return w tym warunku, np:


  1. if (weight == "" || height == "") {
  2. $("#message").html('Wypełnij wszystkie pola');
  3. return false;
  4. }

dwwa
o to chodziło wink.gif
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.