Kondicionální formuláře pomocí kombinace JS a CSS

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod czbios 21. 9. 2011 08:41

Dobrý den, rád bych Vás požádal o radu a nasměrování. Potřeboval bych vyrobit kondicionální formuláře, tj. formuláře, kde po zaškrtnutí určitého políčka, se ji ná políčka odkryjí popřípadě zakryjí.

Protože nemám žádnou možnost zasahovat do komponenty, která provádí generování formuláře a ani nemohu zasahovat do prezenční části individuálně, tj. nemohu projeden formulář pozměnit vzhled, napadlo mě teoreticky následující řešení a potřeboval bych Vás požádat o radu a výsledně pokud lze o pomoc při nasměrování na zdroje informací a odladění skriptu.

Řešení by spočívalo v kombinaci js a css na bázi class nebo id tagů. Je lepší počítat class tagu. Pokud bych nastavil do js pravidlo, že všechny políčka, která budou mít jeden class tag například TAG_parent ve formuláři budou vyplněná, pak všechna políčka, resp. celá část HTML kódu s class tagem TAG_child se odkryje.

Takto bych měl kontrolu nad tím co a jak mohu skrývat a odkrývat a zároveň je to velmi jednoduchá cesta jak dosáhnout kondocionálních formulářů.

P5edem všem děkuji za radu a smysluplné příspěvky.
czbios
Junior
Uživatelský avatar

Odeslat příspěvekod czechian 21. 9. 2011 21:08

jQuery:
Kód: Vybrat vše
$('.trida').addClass('dalsiTrida');
$('.trida').removeClass('dalsiTrida');


A pak v CSS definovat:
Kód: Vybrat vše
.dalsiTrida {display:none}


Tohle schová všechny elementy třídy "trida" ve chvíli, kdy zavoláš ten první kód. V případě zaškrtnutí checkboxu nebo radia lze volání toho kódu navázat na událost onchange. Např.:

Javascript:
Kód: Vybrat vše
var hidden = false;
function hide(class) {
  if(hidden) {
    $('.trida').removeClass('dalsiTrida');
    hidden = false;
  } else {
    $('.trida').addClass('dalsiTrida');
    hidden = true;
  }
}


HTML:
Kód: Vybrat vše
<input type="checkbox" class="trida" onchange="hide('trida')" />
czechian
Junior

Odeslat příspěvekod Vebloud 24. 9. 2011 17:00

Něják v tom nevydím otázku. Řešení jsi si navrhl sám. Já osobně bych si vzal kanón na vrabce a dělal to pomocí JQuery a spojil to rvonou s validací toho formuláře JSkem. A to skrývání nebo odkrývání formulářových prvků prohodil nějákou vhodnou a rychlou animací, aby to dobře vypadalo.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
VIP uživatel
Uživatelský avatar

Odeslat příspěvekod czbios 24. 9. 2011 19:19

Děkuji oběma za radu a odpověď.

Velbloud: Problém je v to , že já nemám moc velkou praxi s JS a JQuery, jsem spíš odchován na Céčkových jazycích, php a mysql.

Proto mi velice pomohlo schválení mé myšlenky a kousky kódu.

Všechno budu muset prozkoumat, ale bude mi to ještě nějaký týden trvat, tak se nezlobte, že se v brzké době neozvu s referencí úspěšností. Budu ovšem rád, pokud se budu moci v budoucnu ohledně tohoto topicu na Vás obrátit v případě, že bych se dostal do úzkých.
czbios
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků