Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript]problem logiczny w js
Forum PHP.pl > Forum > Przedszkole
Maciek1705
Witam serdecznie, ostatnio tworzyłem sobie bardzo prosty formularz do obliczeń pewnych cyfr lecz w pewnym momencie napotkałem na dość kuriozalny błąd który stanowi dla mnie zagadkę już przedstawiam kod:
  1. <script type="text/javascript">
  2. function checkform(){
  3. var from = document.getElementById('from').value;
  4. var to = document.getElementById('to').value;
  5. var rows = document.getElementById('rows').value;
  6.  
  7. if(from == 1){
  8. document.getElementById('submit').style.display = 'none';
  9. document.getElementById('message').style.display = 'block';
  10. }
  11. else{
  12. if(from>=to){
  13. document.getElementById('submit').style.display = 'none';
  14. document.getElementById('message').style.display = 'block';
  15. }
  16. else{
  17. if(((to - from) % rows) != 0){
  18. document.getElementById('submit').style.display = 'none';
  19. document.getElementById('message').style.display = 'block';
  20. }
  21. else{
  22. document.getElementById('submit').style.display = 'block';
  23. document.getElementById('check').style.display = 'none';
  24. document.getElementById('message').style.display = 'none';
  25. }
  26. }
  27. }
  28. }
  29. </script>
  30. </head>
  31. <form action="generator.php" method="post" id="my_form">
  32. <label for="from">Zakres od (nie stosować "1")</label>
  33. <input name="from" type="text" placeholder="wartość początkowa" maxlength="3" id="from" />
  34. <label for="to">Zakres do</label>
  35. <input name="to" type="text" placeholder="wartość końcowa" maxlength="3" id="to" />
  36. <label for="rows">Liczba wierszy w kolumnach</label>
  37. <input name="rows" type="text" placeholder="wartość" maxlength="3" id="rows" />
  38. <input type="submit" id="submit" value="GENERUJ"/>
  39. <input type="button" id="check" value="SPRAWDŹ" onClick="checkform()" />
  40. </form>
  41. </body>


ok teraz opis jak to działa te trzy pola obsługują liczby, zakres od to liczba początkowa od której generator zacznie zakres do to liczba końcowa z liczba wierszy to inaczej liczba pól. Aby miało to sens musi być spełniony warunek (zakres do - zakres od)/liczba wierszy musi być liczbą dodatnią całkowitą. Wszystko działa ale gdy jako zakres od przyjmiemy 50 a jako zakres do 350 natomiast liczbe wierszy damy 60 to już jest zonk i w tym momencie nie wiem dlaczego jak by nie był0 (350-50)/60=5

Czy ktoś mógłby mi podpowiedzieć o co chodzi? Drugą sprawą jest to że chciałem to zrobić całe te sprawdzanie na zasadzie wpisywania wartości do pól a funkcja AJAX by sprawdzała ten warunek lecz nie wiedziałem jak zrobić by po wpisaniu w ostatni input sprawdziła czy wszystko gra bo myślałem o wykorzystaniu zdarzenia onchange ale to chyba nie jest dobry pomysł.
b4rt3kk
Jakby nie było to masz rację (350-50)/60 to istotnie 5, ale w Twoim kodzie jest (to - from) % rows, czyli wpisując wcześniej wymienione liczby wynik wynosi 0. Dzielenie modulo to nie to samo co zwykłe dzielenie.

Co do drugiej części pytania, możesz wykorzystać zdarzenie keyup, ale nie wiem czy to dobry pomysł.
Maciek1705
Rozumiem ale właśnie paradoks polega na tym że dam np jako od - 10 do -360 a liczba wierszy 70 i wszystko gra działa nie ma błędu a wynik też jest 5 ohmy.gif o to w tym chodzi. Jeśli chodzi o dzielenie modulo to sprawdzam czy jest to liczba całkowita zobacz że jest tam warunek że jeżeli reszta z dzielenia jest różna od zera to nie wysyłaj tylko wyświetl komunikat o błędzie
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.