Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] - walidacja formularza, nie działa na Safari
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kiciafu
Witam,

mam pewien formularz, który jest sprawdzany przez Javascript, sprawdzałem we wszystkich przeglądarkach i działa za wyjątkiem Safari (przepuszcza bez walidacji). Gdzieś musi być błąd, który tolerują inne przeglądarki (nawet IE), szukam tego ręcznie ale nie mam pomysłu - Funkcja, która blokuje wysłanie formularza to takie coś
  1.  
  2. //Zatwierdzenie formularza //
  3. form.submit(function(){
  4. if(
  5. validateName1() &
  6. validateNazwisko() &
  7. validateUr1() &
  8. validateG1() &
  9. validateEmail() &
  10. validateKod1() &
  11. )
  12. return true
  13. else
  14. return false;
  15. });
  16.  
Szukałem błędów w funkcjach ale nie mogę się nic dopatrzeć, ktoś może miał problem z Safari na co w kwestii JS ta przeglądarka jest przewrażliwiona
nospor
1) NIe & a &&
2) No to moze bys pokazal jeszcze kody funkcji walidujacych, nie sadzisz??
kiciafu
smile.gif Oczywiście

  1.  
  2. function validateName1(){
  3. //if it's NOT valid
  4. if(name1.val().length < 3){
  5. name1.addClass("error");
  6. name1Info.text("Imię musi mieć co najmniej 3 znaki!");
  7. name1Info.addClass("error");
  8. return false;
  9. }
  10. //if it's valid
  11. else{
  12. name1.removeClass("error");
  13. name1Info.text("OK");
  14. name1Info.removeClass("error");
  15. return true;
  16. }
  17. }
  18.  
  19. function validateNazwisko1(){
  20. //if it's NOT valid
  21. if(nazwisko1.val().length < 3){
  22. nazwisko1.addClass("error");
  23. nazwisko1Info.text("Nazwisko musi mieć przynajmniej 3 znaki!");
  24. nazwisko1Info.addClass("error");
  25. return false;
  26. }
  27. //if it's valid
  28. else{
  29. nazwisko1.removeClass("error");
  30. nazwisko1Info.text("OK");
  31. nazwisko1Info.removeClass("error");
  32. return true;
  33. }
  34. }
  35.  
  36. function validateUr1() {
  37. var a = $("#ur1").val();
  38. var filter = /^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1}$/;
  39. //if valid
  40. if (filter.test(a)){
  41. ur1.removeClass("error");
  42. ur1Info.text("OK");
  43. ur1Info.removeClass("error");
  44. return true;
  45. }
  46. else{
  47. ur1.addClass("error");
  48. ur1Info.text("Błędna data, proszę poprawić np. 2012-01-01");
  49. ur1Info.addClass("error");
  50. return false;
  51. }
  52. }
  53.  
  54. function validateG1(){
  55. var a = $("#g1").val();
  56. var filter =/^[KM]$/;
  57. //if valid
  58. if (filter.test(a)){
  59. g1.removeClass("error");
  60. g1Info.text("OK");
  61. g1Info.removeClass("error");
  62. return true;
  63. }
  64. else{
  65. g1.addClass("error");
  66. g1Info.text("Proszę wprowadzić K lub M");
  67. g1Info.addClass("error");
  68. return false;
  69. }
  70. }
  71.  
  72. function validateEmail(){
  73. //testing regular expression
  74. var a = $("#email_os1").val();
  75. var filter = /^[a-z0-9_.-]+@[a-z0-9_.-]+..{2,4}$/;
  76. //if it's valid email
  77. if(filter.test(a)){
  78. email_os1.removeClass("error");
  79. email_os1Info.text("OK");
  80. email_os1Info.removeClass("error");
  81. return true;
  82. }
  83. //if it's NOT valid
  84. else{
  85. email_os1.addClass("error");
  86. email_os1Info.text("Proszę wprowadzić poprawny email");
  87. email_os1Info.addClass("error");
  88. return false;
  89. }
  90. }
  91.  
  92. function validateKod1(){
  93. var a = $("#kod_os1").val();
  94. var filter = /^[0-9]{2}-[0-9]{3}$/;
  95. //if it's valid email
  96. if(filter.test(a)){
  97. kod_os1.removeClass("error");
  98. kod_os1Info.text("OK");
  99. kod_os1Info.removeClass("error");
  100. return true;
  101. }
  102. //if it's NOT valid
  103. else{
  104. kod_os1.addClass("error");
  105. kod_os1Info.text("Proszę wprowadzić poprawny kod pocztowy");
  106. kod_os1Info.addClass("error");
  107. return false;
  108. }
  109. }
  110.  


te wyrażenia regularne to wiem że szału nie ma...
nospor
if(name1.val().length < 3){
A skad ty bierzesz takie zmiennej jak name1 i jej podobne? Nigdzie nie widze ich deklaracji. Nic dziwngo ze ci nie dziala
kiciafu
Deklaracje zmiennych wyglądają tak:
  1. var name1 = $("#name1");
  2. var name1Info = $("#name1Info");


i tak dalej..natomiast to na bank jest jakaś literówka ;/ jak zmienne "położę" to nie działa nigdzie Cały kod piszę w Notepad++ jest coś co lepiej się do tego nadaje, albo jakiś walidator...
nospor
Sprawdz co zwraca kazda z funckji a bedziesz wiedzial ktora daje ci zly wynik. Czy naprawde ciezko samemu na to wpasc? Bedziesz wiedzial ktora daje zly wynik, to beddzie wiadomo gdzie szukac
kiciafu
Wielkie Dzięki... działa...wystarczyło w funkcji poprawić znaki &&, dziwne bo inne przeglądarki ten błąd ignorują smile.gif
nospor
Cytat
wystarczyło w funkcji poprawić znaki &&,
Pisalem ci o tym "3 dni" temu a ty dopiero to poprawiles?
kiciafu
no tak wyszło tongue.gif temat wyczerpany do zamknięcia
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.