Diskuze: Alespoň jeden z checkboxů je povinný
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 23 zpráv z 23.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
Já bych se opravdu držel javascriptu, ale pokud se mu opravdu chceš
vyhnout, můžeš to ošetřit na straně serveru. Tedy napsat, že je alespoň
jeden povinný, a pokud ho nezaklikne, tak na něj vyskočí error. 
Jako, ono u takhle malého kódu (pár řádků) je to ve finále jedno.
Spíš jsem čekal že když to jde v HTML ošetřit u radio inputu, tak to
půjde i u checkboxu. No, pokud nikdo nebude vědět tak mi ve finále nic
jiného nezbude 
Tak ono to přímo u radio inputů nejde ošetřit, ono to je jejich
vlastností. Celkově radio inputy existují právě, proto aby jsi mohl zvolit
jednu možnost. Takovéhle věci se podle mě nijak rozumě pomocí html nedají
ošetřit 
To máš pravdu, ale předpokládal bych že když dáš required na ten
kokrétní, tak to bude vyžadovat aby jsi zvolil tu danou možnost (stejně
jako se chová u checkboxů) Ale pak by podle této logiky asi nastala
zajímavá situace kdybys dal required všem radio inputům
No nic, jdu tam hodit ten script

Zdá sa mi, že to ide urobiť aj čisto s pomocou CSS tak, že použiješ sadu radio buttonov a preštýluješ ich pomocou CSS aby vyzerali ako checkboxy. Trik je tuším v tom, že použiješ štýl na radio:before a radio:after. Ale otestoval by som to potom v rôznych prehliadačoch, lebo je to viacmenej hack a nie som si istý kde to pôjde a kde nie.
U radio buttonu nebude moci volit více možností, ale jen jednu
No jasný, ale tím, že jednomu dáš required, tak se to uplatní na celou
skupinu radio buttonů. Když mají stejné jména, tak patří k sobě. V
případě checkboxů je každý input sám za sebe. 
Tady máš jednoduchá řešení s javascriptem:
https://stackoverflow.com/…t-1-required
https://stackoverflow.com/…f-checkboxes
https://stackoverflow.com/…one-checkbox

To je tiež pravda. Popravde, ja takéto niečo riešim validátorom pri odoslaní formulára.
Já ten script už mám, ale právě jsem hledal tu možnost skrze HTML. No,
nevadí 
<script type="text/javascript">
$(document).ready(function () {
$('#button').click(function() {
checked = $("input[type=checkbox]:checked").length;
if(!checked) {
alert("Některá pole nejsou vyplněna.");
return false;
}
});
});
</script>
Mimochodom, často som videl obdobne napísaný kód a nie celkom tomu rozumiem... Nie tým lomítkam v BR, tie sú naprosto zbytočné, tým som si istý. Majú zmysel jedine ak by stránku parsoval nejaký XML parser a nie len prehliadač. Čo si nemyslím, že je Tvoj prípad. Ak sa však mýlim, tak potom Ti zas chýbajú lomítka aj v každom INPUT. Čomu však nerozumiem je to name="cil[]". Prečo je ten identifikátor zapísaný ako literál poľa? To má aký zmysel? Nevidím to prvý krát, potažmo nechápem to prvý krat...
<input type="radio" name="cil[]" value="Praha" required>Praha<br />
<input type="radio" name="cil[]" value="Brno">Brno<br />
<input type="radio" name="cil[]" value="Plzeň">Plzeň<br />
Souhlasím, u pole typu radio není možné vybrat více hodnot, není tedy třeba odesílat data v poli (vždy bude 1 hodnota). Toto má smysl u polí typu checkbox, kde je možné vybrat hodnot více.
U radio buttonů je to trochu zvláštní, pravda, protože vždy vybereš jen jeden prvek. Avšak u checkboxů, kde můžeš vybrat více prvků a normálně po odeslání by se ti dostala na server jen poslední hodnota tak pomocí [] pošleš na server všechny vybrané hodnoty.
U radio inputů v tom ale smysl nevidím a pravděpodobně ani žádný není.
Co se [] tyče, jsou tam z toho důvodu ze je to poměrně obsáhlý
formulář a pod těmi radio inputy je ještě textovy input s name="cil". Ma to
větší smysl u těch checkboxu ale nechal jsem to i zde 
Na server sa mi dostanú všetky hodnoty. Len ako pozerám, PHP pri parsovani query stringu napríklad: ?cil=Praha&cil=Brno si najprv nadefinuje $_POST["cil"] = Praha a potom prepise na $_POST["cil"] = Brno. Potom to chápem - píše sa to tak kvôli tomu priblblému PHP. Alebo? Je ešte iný jazyk na serveri kvôli ktorému to tak treba písať?
To je spíše nějaká obecná specifikace. Zkoušel jsem na serveru v Dartu a taky bere jen poslední hodnotu. Prostě se vytváří asociativní pole a to se snaží naplnit. Pokud máš více hodnot se stejným klíčem, prostě ti to přepíše.
Ale to je práve ten problém. Neviem o tom nájsť ani zmienku v špecifikácii. Len odkedy je HTML living standard, možno sa špecifikácia zmenila a ja som pozeral zastaralé dokumenty. Nevieš o nejakej oficiálnej špecifikácii kde je to definované?
Tak ono se prostě jenom stačí řídit tím, že ty identifikátory mají
být unikátní. Je možné, že to chování třeba není definované a shodou
okolností to většinou funguje tak, že získáš jen poslední hodnotu. A
nebo to je někde zahrabaný v nějaký specifikaci 
Ale podle některých tvrzení na to specifikace neexistuje a je to věc
implementace
https://stackoverflow.com/…6566/3972886
Dík za ten link, presne to som si aj myslel. Že v špecifikácii o tom nie je ani slovo. Tu máš query string a rob si s ním čo chceš...
Ve specifikaci HTTP zřejmě ne. Ale v dokumentaci technologií, které s ním pracují, by se to objevit mělo.
To už bude záležať od konkrétneho jazyka. Postup w3c logiku má. Tu máš z klienta query string, čiže sadu key/value párov a pozor, keys nie sú unique. A keď si robíš svoj programovací jazyk na strane servera, sám a po svojom sa vysporiadaj s tým, že sa tam môže meno kľúča opakovať. Mne to príde v poriadku zo strany w3c. No a php sa s tým zjavne vysporiadalo tak, že odporúča, keďže to nie je prehrešok voči hml špecifikácii, že zapíšte hodnotu name atribútu ako array literal a my s tým budeme na serveri rátať a odovzdáme vám to ako pole. OK, tiež spôsob. Nepáči sa mi to síce, ale chápem to. Presnejšie, už to chápem.
Zobrazeno 23 zpráv z 23.
