Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML]Mały problem ze skryptem w JS.
Forum PHP.pl > Forum > Przedszkole
David_Rook
Witam,

Panowie proszę o pomoc w sprawie pewnego skryptu napisanego w JS, bo mi już pomysłów brak....

Otóż, skrypt ma za zadanie sprawdzenie czy wartość kredytu jest większa od wartości nieruchomości podczas kliknięcia przycisku Szukaj w formularzu.
Skrypt działa poprawnie, tzn. gdy wypełnimy wszystkie pola formularza oraz specjalnie wpiszemy za dużą kwotę kredytu względem wartości nieruchomości skrypt wykona się, wyświetli stosowny komunikat i nie pozwoli na wykonanie się formularza.

Problem pojawia się, gdy po raz pierwszy bez wypełnionych pól ktoś wciśnie przycisk Szukaj, wtedy uruchomi się wtyczka odpowiedzialna za walidację (jquery.validate.min.js) wyświetli informację, że pola te są wymagane, uzupełnimy je tak jak wcześniej złymi wartościami, tj. kwota kredytu większa niż nieruchomość i akcja formularza nie wykonuje się ale nei wyświetla się stosowna informacja. Sprawdzałem to w firebug'u, kombinowałem, ale już nie mam pomysłu... Jeśli zmienimy wartości na dobre akacja formularza się wykonuje i zapytanie MySQL również.

Jakieś pomysły, podpowiedzi?

Z góry dziękuję smile.gif

Poniżej kod JS skryptu oraz sposób w jaki go dodaję do HTML.

  1. <script type="text/javascript">
  2.  
  3. function validate(event)
  4. {
  5. with (document.forms[0])
  6. {
  7. if ((kredyt.value == '') && (wartosc_nieruchomosci.value == ''))
  8. {
  9. return;
  10. }
  11. if (kredyt.value > wartosc_nieruchomosci.value)
  12. {
  13. event.preventDefault();
  14. if( $('#errors').html() == '')
  15. {
  16. $('#errors').append("<p>Kredyt jest większy od Nieruchomości!</p>");
  17. }
  18. }
  19.  
  20. }
  21. }
  22.  
  23.  
  24. </script>


Przycisk:
  1. <div>
  2. <button class="awesome" onclick="validate(event);">SZUKAJ!</button>
  3. <div id="errors" class="error" style="float: right;"></div>
  4. </div>
morbic
A co gdybyś zamiast onClick użył buttona wewnątrz form (input type="submit") i podpiął się z własna funkcją pod cały formularz za pomocą submit() w jQuery zwracając z niej false w przypadku niepowodzenia?

  1. <div>
  2. <form action="moj_super_skrypt.php" method="POST" id="moj_super_formularz">
  3. <input type="text" id="input_kredyt" name="kredyt" value="" />
  4. <input type="text" id="input_nieruchomosci" name="nieruchomosci" value="" />
  5. <input type="submit" class="awesome" name="submit" value="SZUKAJ!" />
  6. </form>
  7. <div id="errors" class="error" style="float: right;"></div>
  8. </div>
  9.  
  10. <script type="text/javascript">
  11. $(document).ready(function() {
  12. $("#moj_super_formularz").submit(function() {
  13. if ($("#input_kredyt").val() == '' || $("#input_nieruchomosci").val() == '')
  14. {
  15. return false;
  16. }
  17.  
  18. if (parseInt($("#input_kredyt").val()) > parseInt($("#input_nieruchomosci").val()))
  19. {
  20. $('#errors').html("<p>Kredyt jest większy od Nieruchomości!</p>");
  21. return false;
  22. }
  23. });
  24. });
David_Rook
Niestety nie dziala... sad.gif

Tzn jest tak jak w moim przypadku - skrypt blokuje wykonanie akcji formularza, ale nie wyświetla informacji...
----------------------------------------------------
Temat można zamknąć, problem rozwiązany.
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.