![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 27.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od trzech dni próbuję wstawić validację do formularza z mizernym skutkiem. Chciałbym aby trzeba było podać poprawnego maila, i checkbox (zgoda na wysyłąnie sybskrypcji) aby był wymagany zaznaczony. Starałem się kombinować z JavaScript i nie działało, php nie może być, zresztą strona jest w html i nie ma możliwości jego zmiany :-( Kod daję czysty bo walidację jakich nie wstawiałem to nie było najmniejszej różnicy, nie wiem może użyć całkiem innego formularza?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Formularz nie ma nic do tego. Czemu tu nie wrzucasz ciapków -> <form method="POST" action="form2mail.php">
Jak chcesz robić walidację w JS to napisz sobie funkcję a następnie ją podepnij pod zdarzenie onsubmit formularza jeśli dane są ok to zwracasz true w przeciwnym wypadku false |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 27.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wstawiłem w HEAD:
Następnie:
Wstawiłem nawet dwa przyciski aby sprawdzić i nich z tego, wklejałem to wszędzie i pisałem onclick oraz onsubmit różne kombinacje :-( |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Co to za dziwne kombinacje. Dajesz:
onsubmit="email_validate(document.getElementById('email').value)" |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 27.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dobra zmieniłem na to co podałeś :-)
Poniżej jak to wygląda w sekcji head:
Oraz poniżej (niestety nic się nie dzieje jak jest type: button i onclick a gdy jest submit i onsubmit to poprostu wysyla maila nawet puste pole):
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 34 Dołączył: 7.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzanie jakichkolwiek danych wyłącznie przy pomocy JS i poleganie na ich prawidłowości, to delikatnie umując naiwność. Stwórz sobie nowy prosty formularz, bez setek zbędnych tagów, zwykły input i jeden checkbox zamknięte w form z action="post" i na tym próbuj.
Sprawdzić, czy adres e-mail jest poprawny powinieneś funkcją: preg_match Sprawdzenie, czy checkbox jest zaznaczony: isset np. if(isset($_POST['checkbox_name']) { //do... } |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 5 Dołączył: 30.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Do validatcji po stronie klienta proponuję używać jquery.validate. Dodatkowo wypadałoby zaimplementować sprawdzanie pól po stronie serwera - tak jak radzi mój przedmówca.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 27.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie zajmuję się pisaniem witryn dlatego też niewiele rozumiem z poprzednich postów, zadowolę się komunikatem przy źle wypełnionym polu na maila oraz przy braku zaznaczenia checkboxa.
Działa już to że bez wpisanego poprawnie maila nie działa poprostu przycisk wyślij, można klikać i nic się nie dzieje ale gdy wpiszemy maila poprawnie to wysyła. Prosiłbym o pomoc we wstawieniu alertu, tzn co dopisac w headzie, próbowałem coś wyszukać ale źle wstawiam to na pewno. Oraz o pomoc gdzie wstawić if(isset($_POST['checkbox_name']) { //do... } Wstawiłem już:
oraz:
P.S. Jestem wdzięczny że jeszcze nikt mnie nie "zmasakrował" za stan wiedzy.... Pozdrawiam, i dziękuję bo jest już krok do przodu, dzięki Wam |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 34 Dołączył: 7.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tyle, że ja pisałem o PHP, a ty piszesz w JavaScripcie. Kolega powyżej dobrze doradził Ci jQuery, bo po prostu oszczędzi ci to wiele pracy i frustracji. Jak nie teraz, to kiedyś. Jeżeli w head dodasz:
<script src="http://code.jquery.com/jquery-1.6.1.min.js" type="text/javascript"></script> to spradzenie checkboxa będzie mogło wyglądać np. tak: Kod var isChecked = $('#checkBox').attr('checked'); if(isChecked != 'checked') { // do... } Alert możesz stosować dla siebie, przy testowaniu, natomiast publikując już stronę lepiej byłoby ten komunikat wyświetlić nad formularzem. Przed twoim <form> dodaj np. <div id="msg"></div> a wtedy //do... zamień na: Kod $("#msg").text("Proszę zaznaczyć... bla bla");
Ten post edytował DiH 25.07.2011, 11:57:34 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 27.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niestety wstawiłem ale nic się nie dzieje, przypuszczam że sporo błędów ma sam szablon strony. Problem w tym że niewiele można w nim zmienić czy go też pokazać na forum, nie należy do mnie....
Wstawiłem też to do heada: <script src="http://code.jquery.com/jquery-1.6.1.min.js" type="text/javascript"></script> Wstawiłem do head:
I przed form jest: <div id="msg"></div> Niestety nic sie nie dzieje jak jest email to wysyła wiadomość a jak nie ma to nic sie nie dzieje Co dopisać do kodu z emaila aby pojawial sie nad komentarzem napis, coś jak do checkboxa, rzeczywiście jest to ciekawe rozwiązanie. Niestety jestem zbyt toporny jak widac nie jestem w stanie samemu tego zrobic. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 34 Dołączył: 7.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Kod, który ja napisałem to JS, a więc musisz go wrzucić pomiędzy <script type="text/javascript"></script>
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wstawiłem też to do heada: <script src="http://code.jquery.com/jquery-1.6.1.min.js" type="text/javascript"></script> Niech Pan ściągnie tą bibliotekę ze strony http://code.jquery.com/jquery-1.6.1.min.js i wklei do folderu gdzie znajduje się Pana stronka/projekt. Następnie : <script src="http://code.jquery.com/jquery-1.6.1.min.js" type="text/javascript"> zmienić na: <script src="c:/mójFolderStrony/jquery-1.6.1.min.js" type="text/javascript"> |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 34 Dołączył: 7.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli testuje to będąc podłączonym do internetu, to co za różnica? Jedynie w czasie dostępu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 13:11 |