Jak vynutit nevkládání odeslané hodnoty do inputu

Čelo
Člen | 42
+
0
-

Zdravím,
potřeboval bych navést jak nejlépe vyřešit menší zádrhel.
Mám jako příklad formulář, který má input typu hidden, do kterého při každém vykreslení (vytvoření) zadávám aktuální čas (jen pro příklad). V případě, že selže validace na serveru a formulář se vykreslí znovu, tak bych rád, aby si formulář nepamatoval předchozí odeslanou novou hodnotu, ale přepsal si ji tou aktuální (přegenerovanou například v createComponentXXX).
Je na to nějaký doporučený postup? Je toho možné docílit?

Kcko
Člen | 468
+
0
-

Čelo napsal(a):

Zdravím,
potřeboval bych navést jak nejlépe vyřešit menší zádrhel.
Mám jako příklad formulář, který má input typu hidden, do kterého při každém vykreslení (vytvoření) zadávám aktuální čas (jen pro příklad). V případě, že selže validace na serveru a formulář se vykreslí znovu, tak bych rád, aby si formulář nepamatoval předchozí odeslanou novou hodnotu, ale přepsal si ji tou aktuální (přegenerovanou například v createComponentXXX).
Je na to nějaký doporučený postup? Je toho možné docílit?

Nastavit ji v render metodě

<?php
public function renderDefault()
{
  $this['form']['hidden']->setValue(time());
}
?>

Editoval Kcko (4. 4. 2018 10:11)

Čelo
Člen | 42
+
0
-

Dík za navedení … nakonec jsem využil přímo onRender metodu formuláře.

<?php
$form->onRender[] = function(Form $form) use ($time) {
	$form['hidden']->setValue($time);
}
?>

Editoval Čelo (4. 4. 2018 12:28)

Kcko
Člen | 468
+
0
-

Čelo napsal(a):

Dík za navedení … nakonec jsem využil přímo onRender metodu formuláře.

<?php
$form->onRender[] = function(Form $form) use ($time) {
	$form['hidden']->setValue($time);
}
?>

Fajn, onRender ani neznám (nepoužívám Nette 2.4).