Wpis z mikrobloga

#javascript i troche #programowanie #januszeprogramowania

Potrzebowałem zrobić formularz, skorzystałem z phpFormGenerator
Mam kilka pól tekstowych i jeden checkbox,
skrypt elegancko za pomocą funkcji sprawdza czy w tekstowych jest cokolwiek wpisane,
lecz mimo zaznaczenia ze checkbox jest wymagany puszcza formularz dalej bez sprawdzenia ( ͡° ʖ̯ ͡°)

Funkcja (chodzi o fieldbox 8), jak to zmodyfikować, żeby nie puszczał dalej bez zaznaczonego kwadracika?

`
  • 10
  • Odpowiedz
@rbn: Może pomogę, choć dawno na frontendzie nie robiłem.

Imho, id="fieldBox8" powinno być na elemencie:

Sprawdź i daj znać czy zadziała
  • Odpowiedz
@rbn: Druga kwestia - nie jestem pewien, ale... Jeśli sprawdzasz poprawność checkboxów moźe być tak, że false to jedna zaznaczona opcja, true - druga, a null - żadna :)
  • Odpowiedz
@rbn: Debuguj?
Coś musi być popsute tu

if (validateField('field8','fieldBox8','checkbox',1) == false)

albo we wszystkich wcześniejszych, w zależności od tego, jak działa funkcja validateField()
  • Odpowiedz
@Wozyack: Nie działa, ogólnie rozumiem mniej więcej co tu pisze ale nie znam tego na tyle żeby to ogarnąć xD
Mam wrażenie, że ten skrypt sprawdza czy wg checkbox sie pojawia, obojetnie czy zaznaczony czy nie.
  • Odpowiedz
@rbn: Na przyszłość - większość błędów już ktoś miał i opisał. Kwestia znalezienia dobrego rozwiązania. Uwierz mi, naprawdę ciężkie i specyficzne przypadki nie mają do tej pory w necie rozwiązania.

Jeśli chodzi o Twój problem, to polecam wpisać w gooogle "checkbox validation in javascript" i będziesz miał milijony (pisownia celowa) podpowiedzi :)

PS: Ludzie-aspirujący do kodowania/programowania - uczcice się wyszukiwać podobnych problemów i rozwiązywać je
  • Odpowiedz
@Wozyack: Szukałem, czytałem o funkcjach i metodą prób i błędów chciałem to naprawić tylko, że robie to pierwszy raz w życiu, zapewne ostatni (dlatego skorzystałem z generatora) a wszystko co znalazłem odnosiło się do napisania tego całkiem inaczej od nowa = udało mi się już kilka razy popsuć cały formularz xD

Czy zaznacze czy nie ten checkbox i tak formularz przechodzi do wysyłki z komunikatem o sukcesie.
Wcześniej korzystałem z jotform
  • Odpowiedz
@rbn: dodaj required do inputa? Wtedy przeglądarka nie puści bez zaznaczenia ^^ a po stronie php możesz dać
if(!isset($POST[nazwazmiennej_inputa])) retVal = false;
  • Odpowiedz
@Dzemtenjem: Dodałem samo required i palę się ze wstydu bo działa ^^ nie wiem czemu wcześniej na to nie wpadłem, przecież to najprostsza metoda
  • Odpowiedz
@rbn: Tylko nie wiem jak to tam interpretują starsze wersje IE, więc warto też to jakoś od strony php zrobić :) Z tego co mi się wydaje checkbox niezaznaczony nie stworzy zmiennej POST więc wystarczy sprawdzić czy jest ustawiony issetem i jeżeli nie jest to zmienić flagę na false.
  • Odpowiedz