Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Sprawdzenie czy wpisano dany tekst w input
Kerth
post 6.09.2014, 10:29:08
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Cześć,
męczę się ze sprawdzeniem w javascript czy wpisano dany tekst i kliknięto submit. Przykład:

Jeśli nie wpisano słów http:// to pojawia się komunikat. Jeśli wpisano to przepuszcza dalej.
W jaki sposób to zrobić? Jakiej funkcji użyć? Jakiś mały przykład? Pomóżcie.
Go to the top of the page
+Quote Post
trueblue
post 6.09.2014, 10:31:51
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Podpinasz obsługę zdarzenia onSubmit w formularzu.
Pobierasz wartość pola, sprawdzasz (najlepiej wyrażeniem regularnym) poprawność pola.
Jeśli poprawne, to zwracasz true w funkcji, jeśli nie, zwracasz false.


--------------------
Go to the top of the page
+Quote Post
Kerth
post 6.09.2014, 10:35:42
Post #3





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Mam podpięte pod onSubmit w formularzu. Błędy typu "nie wypełniłeś pola" pojawiają się prawidłowo. Problem jest właśnie ze sprawdzaniem. Tak samo jest z e-mail`em.

  1. var mail = "email";
  2. var wzorMaila = /^[0-9a-z_.-]+@[0-9a-z.-]+\.[a-z]{2,3}$/i
  3. if (f.email.value != wzorMaila)
  4. bledy += '* Podany e-mail zawiera niedozwolone znaki!\n';


Czy ja to dobrze rozumiem? Co jest w tym kodzie nie tak, bo nie działa mi prawidłowo?

PS. To tylko przykład.
Go to the top of the page
+Quote Post
trueblue
post 6.09.2014, 10:38:42
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


http://www.w3schools.com/jsref/jsref_regexp_test.asp


--------------------
Go to the top of the page
+Quote Post
Kerth
post 6.09.2014, 10:54:25
Post #5





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


A jak powinno brzmieć wyrażenie regularne dla słów "http://" ?
Go to the top of the page
+Quote Post
SmokAnalog
post 6.09.2014, 10:56:10
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Użyj jQuery:
  1. <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>


I zrób to np. tak:
[JAVASCRIPT] pobierz, plaintext
  1. $("#formularz").submit(function () {
  2. if ($("#pole").val().indexOf("http://") !== 0) {
  3. $("#komunikat").text("Nieprawidłowy URL.");
  4. return false;
  5. }
  6. });
[JAVASCRIPT] pobierz, plaintext


Mój przykład będzie działał na HTML-u w tym stylu:
  1. <form id="formularz">
  2. <input type="text" id="pole">
  3. <div id="komunikat"></div>
  4. <input type="submit" value="OK">
  5. </form>


Ten kod sprawdzi tylko czy wartość zaczyna się od http:// i wyświetli komunikat jeśli nie.
Go to the top of the page
+Quote Post
trueblue
post 6.09.2014, 10:57:00
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Dla samych słów nie musisz stosować wyrażenia regularnego, ale porównać początek stringu z "http://".
Ale lepiej sprawdzić poprawność całej wartości:
/^(http|https|ftp)\:\/\/[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?\/?([a-z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/i


--------------------
Go to the top of the page
+Quote Post
Kerth
post 6.09.2014, 11:10:48
Post #8





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Cytat(SmokAnalog @ 6.09.2014, 11:56:10 ) *
Użyj jQuery:
  1. <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>


I zrób to np. tak:
[JAVASCRIPT] pobierz, plaintext
  1. $("#formularz").submit(function () {
  2. if ($("#pole").val().indexOf("http://") !== 0) {
  3. $("#komunikat").text("Nieprawidłowy URL.");
  4. return false;
  5. }
  6. });
[JAVASCRIPT] pobierz, plaintext


Mój przykład będzie działał na HTML-u w tym stylu:
  1. <form id="formularz">
  2. <input type="text" id="pole">
  3. <div id="komunikat"></div>
  4. <input type="submit" value="OK">
  5. </form>


Ten kod sprawdzi tylko czy wartość zaczyna się od http:// i wyświetli komunikat jeśli nie.


Coś chyba nie tak, bo kod nie zwraca nic gdy wpiszę i prześlę jakikolwiek wpis. Nic się nie dzieje oprócz dodania do linku znaku "?".

Zrobiłem sobie przykład poza projektem:

  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
  4. </head>
  5. <body>
  6. <script>
  7. $("#formularz").submit(function () {
  8. if ($("#pole").val().indexOf("http://") !== 0) {
  9. $("#komunikat").text("Nieprawidłowy URL.");
  10. return false;
  11. }
  12. });
  13. </script>
  14.  
  15. <form id="formularz">
  16. <input type="text" id="pole">
  17. <div id="komunikat"></div>
  18. <input type="submit" value="OK">
  19. </form>
  20. </body>


Dobrze to zinterpretowałem?

Ten post edytował Kerth 6.09.2014, 11:12:06
Go to the top of the page
+Quote Post
SmokAnalog
post 6.09.2014, 11:58:21
Post #9





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Daj oba znaczniki <script> zaraz przed zamknięciem </body>.
Go to the top of the page
+Quote Post
Kerth
post 6.09.2014, 12:01:05
Post #10





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Niestety nadal nic z tego:

  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
  4. </head>
  5. <body>
  6.  
  7.  
  8. <form id="formularz">
  9. <input type="text" id="pole">
  10. <div id="komunikat"></div>
  11. <input type="submit" value="OK">
  12. </form>
  13.  
  14. <script>
  15. $("#formularz").submit(function () {
  16. if ($("#pole").val().indexOf("http://") !== 0) {
  17. $("#komunikat").text("Nieprawidłowy URL.");
  18. return false;
  19. }
  20. });
  21. </script>
  22. </body>


Reakcja skryptu nadal taka sama.
Go to the top of the page
+Quote Post
SmokAnalog
post 6.09.2014, 12:40:41
Post #11





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Oba znaczniki, czyli ten z <head> też. Ale to nie ma wpływu na działanie. Sprawdziłem czy działa i działa.
Go to the top of the page
+Quote Post
Kerth
post 6.09.2014, 13:18:17
Post #12





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


W takim razie co może być nie tak? Jakiś pomysł?
Go to the top of the page
+Quote Post
golabow
post 6.09.2014, 13:49:07
Post #13





Grupa: Zarejestrowani
Postów: 53
Pomógł: 17
Dołączył: 4.07.2014

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


Sprawdź jakie masz komunikaty w konsoli. Zwykle w przeglądarkach konsole możesz uruchomić poprzez F12.
Go to the top of the page
+Quote Post
Kerth
post 6.09.2014, 15:11:50
Post #14





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


W konsoli brak błędów. Dalej nie wiem o co chodzi.
Go to the top of the page
+Quote Post
trueblue
post 6.09.2014, 15:33:04
Post #15





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Spróbuj tak:
  1. $(document).ready(function(){
  2. //tu ten kod
  3. });


--------------------
Go to the top of the page
+Quote Post
Kerth
post 6.09.2014, 15:38:22
Post #16





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


  1. <html>
  2. <head>
  3. <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
  4.  
  5. </head>
  6. <body>
  7.  
  8.  
  9. <form id="formularz">
  10. <input type="text" id="pole">
  11. <div id="komunikat"></div>
  12. <input type="submit" value="OK">
  13. </form>
  14.  
  15. <script>
  16. $(document).ready(function(){
  17. $("#formularz").submit(function () {
  18. if ($("#pole").val().indexOf("http://") !== 0) {
  19. $("#komunikat").text("Nieprawidłowy URL.");
  20. return false;
  21. }
  22. }
  23. });
  24. </script>
  25. </body>


Dalej bez rezultatów.
Go to the top of the page
+Quote Post
SmokAnalog
post 6.09.2014, 16:27:04
Post #17





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Document ready jest niepotrzebne, bo w momencie załadowania skryptu, potrzebne elementy są już gotowe. Po raz trzeci przypominam o przeniesieniu pierwszego <script> z <head> do <body>.

Jeśli Tobie to nie działa, to ja już nie wiem. Ostatni pomysł jaki mam, to spróbuj pobrać ten plik jQuery i odwołaj się do niego lokalnie.
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: 28.04.2024 - 17:02