Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Własna funkcja nie działa, TypeError: silaHasla is not a function
castagir
post 4.03.2015, 10:49:07
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Witam

Czy wie ktoś co zrobić aby własne funkcje z parametrami, które nie są wywoływane przez żadne eventy działały?

Te funkcje o które mi chodzi są to funkcje, które są wywoływane wewnątrz innej funkcji:
  1. var silaHasla = silaHasla(hasloAdministratora);
  2. var silaPin = silaPin(pinAdministratora);


Stworzyłem dwie funkcje z parametrami, które mają za zadanie obliczyć siłę dwóch kodów. Niestety przeglądarka i firebug nie uważa ich za funkcje.
Co zrobić?
Go to the top of the page
+Quote Post
nospor
post 4.03.2015, 11:04:30
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Masz blad w linii 56


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
castagir
post 4.03.2015, 12:55:30
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Rozumiem, że z fusów nie wywróżysz.

Wrzucam skróconą wersję całego dokumentu bez zbędnego tekstu:

java script:
  1. /* Załadowanie wszystkich funkcji i utworzenie zmiennych przechowujących informację o postępach instalacji */
  2. $(document).ready(function() {
  3. var postep;
  4. rozpocznijKrok1();
  5. sprawdzKrok1();
  6. rozpocznijKrok2();
  7. sprawdzKrok2();
  8. });
  9.  
  10. /* Funkcje niezbędne do przeprowadzenia dynamicznej instalacji ENDO */
  11.  
  12. /* Funkcje Krok 1. */
  13. function rozpocznijKrok1() {
  14. $('#pojemnikGlowny').on('click', '.rozpocznijKrok1', function() {
  15. postep = 'krok1';
  16. $.ajax ({
  17. type :"POST",
  18. url :"instalator.php",
  19. data :{
  20. postep: postep
  21. },
  22. success: function(odpowiedz) {
  23. $('#pojemnikGlowny').html(odpowiedz);
  24. }
  25. });
  26. });
  27. }
  28. function sprawdzKrok1() {
  29. $('#pojemnikGlowny').on('click', '.sprawdzKrok1', function() {
  30. // tresc...
  31.  
  32. });
  33. }
  34.  
  35. /* Funkcje Krok 2. */
  36. function rozpocznijKrok2() {
  37. $('#pojemnikGlowny').on('click', '.rozpocznijKrok2', function() {
  38. postep = 'krok2';
  39. $.ajax ({
  40. type :"POST",
  41. url :"instalator.php",
  42. data :{
  43. postep: postep
  44. },
  45. success: function(odpowiedz) {
  46. $('#pojemnikGlowny').css('height', '600px');
  47. $('#pojemnikGlowny').html(odpowiedz);
  48. }
  49. });
  50. });
  51. }
  52. function sprawdzKrok2() {
  53. $('#pojemnikGlowny').on('click', '.sprawdzKrok2', function() {
  54.  
  55. // tresc..
  56.  
  57. // w tych dwóch miejscach występuje błąd
  58. var silaHasla = silaHasla(hasloAdministratora);
  59. var silaPin = silaPin(pinAdministratora);
  60.  
  61. // tresc...
  62. });
  63. }
  64.  
  65. // Funkcje pomocnicze:
  66. function silaHasla(haslo) {
  67. // tresc
  68. return sila;
  69. }
  70.  
  71. function silaPin(pin) {
  72. // tresc...
  73. return sila;
  74. }


Rozpocznij Krok 1 i 2 wysylaja zapytanie do php, które odsyła nową treść dla strony, daltego chyba nie ma sensu zawartości tego pliku wysylac.
Go to the top of the page
+Quote Post
nospor
post 4.03.2015, 13:00:30
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) po co dajesz mi POMOGL, skoro jeszcze nic nie zrobilem?? Lizusotwo tu naprawde w niczym nie pomaga.
2) funkcje sprawdz... mają sie wykonac po zakonczeniu ajax funkcji rozpocznij.... a nie przed. Byc moze dlatego masz blad.
3) Konsola bledow FireBUG napewno nie zwraca ci nic wiecej?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
castagir
post 4.03.2015, 13:17:31
Post #5





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


1) To nie było podlizywanie się, tylko Twój sarkazm trochę mnie rozbawił. biggrin.gif Dlatego dostałeś pomógł - co było również trochę sakrastyczne.

2) Wcześniej też miałem problem z tym, że funkcje nie wczytywały się po załadowaniu nowej treści przez ajax. Wtedy też mi chyba pomogłeś, bo wystarczyło wrzucić wcześniej po obiekcie nadrzędnym, który uruchamia funkcję - ".on(event, przycisk, funckaj). Chciałbym wiedzieć czy również dałoby się zrobić coś podobnego w tym przypadku.

3) TypeError: silaHasla is not a function

var silaHasla = silaHasla(hasloAdministratora);

tylko tyle dostaję od firebuga


Wrzuciłem w to miejsce te funkcje:
  1. /* Funkcje Krok 2. */
  2. function rozpocznijKrok2() {
  3. $('#pojemnikGlowny').on('click', '.rozpocznijKrok2', function() {
  4. postep = 'krok2';
  5. $.ajax ({
  6. type :"POST",
  7. url :"instalator.php",
  8. data :{
  9. postep: postep
  10. },
  11. success: function(odpowiedz) {
  12. $('#pojemnikGlowny').css('height', '600px');
  13. $('#pojemnikGlowny').html(odpowiedz);
  14. // tutaj wstawiłem niedziałające funkcje
  15. }
  16. });
  17. });
  18. // następnie tutaj
  19. }


Obie próby nic nie dały i wciąż firebug wysyła ten sam komunikat.
Go to the top of the page
+Quote Post
markuz
post 4.03.2015, 13:20:18
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Funkcja:
[JAVASCRIPT] pobierz, plaintext
  1. var test = function(a) {
  2. return a;
  3. }
  4.  
  5. var b = test(5); // 5
[JAVASCRIPT] pobierz, plaintext


Obiekt:
[JAVASCRIPT] pobierz, plaintext
  1. function test(a) {
  2. this.a = a;
  3. }
  4.  
  5. var b = new test(5); // obiekt
[JAVASCRIPT] pobierz, plaintext


Zdefiniuj odpowiednio swoje funkcje i umieść na samej górze (przed $(document).ready())
Poza tym nazywasz funkcje tak samo jak zmienne pod które je podstawiasz a to nie jest mile widziane.

Ten post edytował markuz 4.03.2015, 13:26:40


--------------------
Go to the top of the page
+Quote Post
nospor
post 4.03.2015, 13:22:06
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad1) POMOGL nie sluzy sarkazmom. POMOGL określa, ze temat jest zakonczony...a chyba nie chcesz zeby ludzie uznawali, ze rozwiązales problem i w ogole do tematu nie wchodzili, prawda?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
castagir
post 4.03.2015, 15:10:59
Post #8





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


EDIT: rozwiązanie markuza pomogło biggrin.gif Dzięki wszystkim za zainteresowanie się problemem i pomoc smile.gif

Jeśli byście mogli powiedzieć. Co to znaczy?
  1. Error: Syntax error, unrecognized expression: unsupported pseudo: 0
  2.  
  3.  
  4. throw new Error( "Syntax error, unrecognized expression: " + msg );


Pokazało mi się to w FireBug'u po wprowadzeniu rozwiązania markuza.
Da się jakoś wyświetlić ten "msg"?

Ten post edytował castagir 4.03.2015, 15:11:59
Go to the top of the page
+Quote Post
mar1aczi
post 4.03.2015, 15:20:07
Post #9





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Ten msg to nie jest czasem "unsupported pseudo: 0"?


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
castagir
post 4.03.2015, 15:58:27
Post #10





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


I nie wiem co ma to oznaczać. Bo chyba mam dobrze napisane funkcję:
  1. var obliczenieSilyHasla = function(haslo) {
  2. dlugosc = haslo.lenght;
  3. var duzeLitery = 0;
  4. for(var i=0; i<dlugosc; i++) {
  5. if(/[A-Z]/.test(haslo.charAt(i))) { duzeLitery++; }
  6. }
  7. var maleLitery = 0;
  8. for(var i=0; i<dlugosc; i++) {
  9. if(/[A-Z]/.test(haslo.charAt(i))) { maleLitery++; }
  10. }
  11. var cyfry = 0;
  12. for(var i=0; i<dlugosc; i++) {
  13. if(/[0-9]/.test(haslo.charAt(i))) { duzeLitery++; }
  14. }
  15.  
  16. var sila = 0;
  17. switch(dlugosc) {
  18. case (dlugosc == 5): sila += 5; break;
  19. case (dlugosc > 5 && dlugosc <= 10): sila += 10; break;
  20. case (dlugosc > 10 && dlugosc <= 15): sila += 20; break;
  21. case (dlugosc > 15 && dlugosc <= 20): sila += 25; break;
  22. default: break;
  23. }
  24. switch(duzeLitery) {
  25. case (duzeLitery == 0): break;
  26. case (duzeLitery == 1): sila += 5; break;
  27. case (duzeLitery == 2): sila += 15; break;
  28. case (duzeLitery == 3): sila += 20; break;
  29. case (duzeLitery >= 4): sila += 25; break;
  30. default: break;
  31. }
  32. switch(maleLitery) {
  33. case (maleLitery == 0): break;
  34. case (maleLitery == 1): sila += 5; break;
  35. case (maleLitery == 2): sila += 15; break;
  36. case (maleLitery == 3): sila += 20; break;
  37. case (maleLitery >= 4): sila += 25; break;
  38. default: break;
  39. }
  40. switch(cyfry) {
  41. case (cyfry == 0): break;
  42. case (cyfry == 1): sila += 5; break;
  43. case (cyfry == 2): sila += 15; break;
  44. case (cyfry == 3): sila += 20; break;
  45. case (cyfry >= 4): sila += 25; break;
  46. default: break;
  47. }
  48. return sila;
  49. }
  50.  
  51. var obliczenieSilyPin = function(pin) {
  52. var sila = 0;
  53. if(pin == '0000') {
  54. sila = false;
  55. }
  56. else if(/^000([1-9]){4}$/.test(pin)) {
  57. sila += 10;
  58. }
  59. else if(/^00([1-9])0{4}$/.test(pin)) {
  60. sila += 20;
  61. }
  62. else if(/^0([1-9])00{4}$/.test(pin)) {
  63. sila += 20;
  64. }
  65. else if(/^([1-9])00{4}$/.test(pin)) {
  66. sila += 20;
  67. }
  68. else if(/^00([1-9]){4}$/.test(pin)) {
  69. sila += 25;
  70. }
  71. else if(/^0([1-9]){4}$/.test(pin)) {
  72. sila += 50;
  73. }
  74. else if(/^([0-9]){4}$/.test(pin)) {
  75. sila += 75;
  76. }
  77. return sila;
  78. }
Go to the top of the page
+Quote Post
Pyton_000
post 4.03.2015, 16:03:21
Post #11





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Jesteś pewny że tu wywala Ci błąd?

Poza tym
case (maleLitery == 0): break;
i
default: break;

jest Ci nie potrzebne skoro nic tam nie robisz...
Go to the top of the page
+Quote Post
castagir
post 4.03.2015, 17:00:22
Post #12





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

Ostrzeżenie: (10%)
X----


Już znalazłem źródło smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 14:27