Přidávání položek z formuláře

Formuláře často něco přidávají do seznamu: komentář, úkol, věc, kterou si sbalit. Obě poloviny už znáte. Co uživatel napsal, je ve stavu řízeného textového pole, a jak přidat položku do pole ve stavu, víte z lekce Stav: aktualizační funkcí, která vytvoří nové pole pomocí tří teček. Obsluha formuláře obojí spojí:

function pridejPrani(event) {
    event.preventDefault();
    setPrani((prani) => [...prani, { id: Date.now(), kapela: kapela }]);
    setKapela("");
}

To je z formuláře, ve kterém fanoušci navrhují kapely na příští rok. Nové přání přijde na konec nového pole a dostane id pro svůj key. Date.now() je počet milisekund od začátku roku 1970, takže pokaždé, když někdo přidá přání, je to jiné číslo, a jako id to tady stačí. Pak setKapela("") textové pole vyprázdní, aby šlo hned psát další kapelu. U řízeného textového pole je vyprázdnění jen změna jeho stavu.

Prázdné přání nedává smysl, takže tlačítko nemá fungovat, dokud je textové pole prázdné. Atribut disabled (vypnuté) dostane podmínku:

<button type="submit" disabled={kapela.trim() === ""}>
    Navrhnout
</button>

Dokud podmínka platí, je tlačítko vypnuté: je bledší a kliknutí na něj nic neudělá. Když jsou v textovém poli jen mezery, dá trim() hodnotu "", takže zůstane vypnuté. Formulář, jehož tlačítko pro odeslání je vypnuté, nejde odeslat ani Enterem. A protože každé vykreslení podmínku spočítá ze stavu znovu, tlačítko ožije s prvním napsaným písmenem.

Pokyny

Když se formulář odešle, přidejte na konec seznamu, co je napsané v textovém poli, jako novou položku s id, a textové pole vyprázdněte.

Vypněte tlačítko Přidat, dokud je textové pole prázdné nebo jsou v něm jen mezery.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

Zpět

7/9

Další