Změna třídy u prvků formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pifko
Člen | 13
+
0
-

Ahoj,

chci změnit třídu input boxu u formuláře (standartně je class=„text“). Dělám to takhle:

$form = new Form;
$form->addText('headline', 'Titulek:');
$name = $form['headline']->getControlPrototype();
$name->class = 'headline';

Po vykreslení fomuláře, je ale místo class=„headline“ uvedeno class=„headline text“. Jak se toho " text" zbavit? Díky

nAS
Člen | 277
+
0
-

Nějak si nedokážu představit, proč by ti to mělo vadit. Tu třídu „headline“ můžeš i nadále používat. Navíc mít u všech inputů třídu s přesným typem je velmi dobrý zvyk, minimálně do té doby, než to budou umět všechny rozšířené prohlížeče detekovat přímo v CSS.

Jod
Člen | 701
+
0
-

Ja v tom tiež nevidím problém, ale skôr výhodu.

pifko
Člen | 13
+
0
-

Pravda. Jen mě to v první chvíli trochu zaskočilo. Díky

Ola
Člen | 385
+
0
-

Pokud by Ti to hodně vadilo tak můžeš mrknout na pole $wrappers v ConventionalRenderer a přepsat to nějak takhle (teď u sebe nemam nette, tipuju):

$form = new AppForm($this, "test");

$renderer = $form->getRenderer();
$renderer->wrappers['control']['.text'] = "";
pifko
Člen | 13
+
0
-

Díky,

ještě bych se chtěl zeptat. Po vykreslení formuláře, jsou jednotlivé řádky (prvky) formuláře oddělené práznou řádkou, což se mi moc nelíbí. Jak udělat, aby se tyhle prázdný řádky nepřidávaly?

nAS
Člen | 277
+
0
-

pifko napsal(a):

Díky,

ještě bych se chtěl zeptat. Po vykreslení formuláře, jsou jednotlivé řádky (prvky) formuláře oddělené práznou řádkou, což se mi moc nelíbí. Jak udělat, aby se tyhle prázdný řádky nepřidávaly?

Teď nevím úplně přesně co myslíš, ale spoustu věcí při vykreslování formuláře jde nastavit právě pomocí těch wrapperů. Několik příkladů na formuláře je přímo v distribuci a naživo si je můžeš prohlédnout na https://nette.org/examples/forms/.

pifko
Člen | 13
+
0
-

Myslím to, že když se podíváš na zdrojový kód stránky těch příkladů, tak v oblasti formuláře (vykreslené pomocí echo $form), je vždycky prázdná řádka mezi jednotlivýma prvkama (label, input, apod.).

nAS
Člen | 277
+
0
-

Takže ti vadí formát zdrojového kódu? To sice nevím proč, ale pro mě za mě :) V tom případě budeš muset použít vlastní Renderer.

Editoval nAS (1. 2. 2009 2:39)