Przejdź do głównej zawartości

Wyrażenia JS: zasady gry

Formularz działa, ale jest prosty. Od tej lekcji dodajemy mu logikę za pomocą wyrażeń w JavaScripcie, pisanych bezpośrednio we właściwościach pól. Najpierw poznajesz zasady.

  • Prawie każda właściwość pola ma dwie wersje:
    • zwykłą — wpisujesz albo zaznaczasz wartość (np. required, min, max),
    • wyrażenie (expression) — tę samą wartość liczy JavaScript, na żywo.
  • Efekt jest ten sam, tylko w wyrażeniu wartość może zależeć od innych danych.
  • Wyrażenie traktuj jak wnętrze funkcji. Funkcja bez return zwraca undefined, więc zawsze zwracasz to, co wpisałbyś ręcznie we właściwości. Przykład dla podpowiedzi (tooltip): return 'tekst podpowiedzi';
  • Nie masz nic do zwrócenia → return null;
  • Wyjątek: akcje, np. onChangeExpression. To akcja wywoływana przy zmianie, więc nic nie zwraca i return pomijasz.

Edytor podpowiada dostępne obiekty, a po najechaniu myszką pokazuje, jak ich użyć:

Obiekt Do czego
data('ścieżka') odczyt wartości dowolnego pola po ścieżce
value() wartość pola, w którym jest wyrażenie
dataModifier zmiana wartości pola
source(...) dane z zewnętrznego źródła (lekcja 10)
contract typedef — to, co proces formularza przysłał na formularz
  • Pole tekstowe debug z wyrażeniem tekstu pokazuje obok siebie uwagi odczytane przez data() oraz status i uwagi z contract.
  • W aplikacji: gdy piszesz w polu uwag, wartość z data() zmienia się na żywo, a ta z contract stoi w miejscu.
  • contract = stan z chwili otwarcia formularza. data() = stan pola w momencie, w którym wyrażenie się wykonuje.
  • Odczyty owijaj w try/catch — błąd odczytu nie wywróci formularza.
  • Porównuj luźno (==). Wartość z kontraktu dla tego samego pola może przyjść raz jako liczba, raz jako tekst.
  • Pisz prosto, żeby kod był łatwy w utrzymaniu.

Wyrażenie = ciało funkcji z return (poza akcjami). Różnica między contract (otwarcie) a data() (teraz) wraca w każdej kolejnej lekcji.