Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][JavaScript]problem logiczny w js
Maciek1705
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 3
Dołączył: 15.06.2009

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


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ł.

Ten post edytował Maciek1705 16.01.2013, 21:02:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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ł.

Ten post edytował b4rt3kk 16.01.2013, 21:11:36
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 13:03