Vlastní prvek neudrží hodnotu po úspěšném odeslání (ale ne přesměrování) formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Gwidion
- Člen | 13
Ahoj,
vytvořil jsem si vlastní prvek ColorPicker, který vkládá html <input
type=„color“>
<?php
...
class ColorPicker extends BaseControl
{
/**
* @param string caption
*/
public function __construct($caption = NULL)
{
$this->monitor('Nette\Forms\Form');
parent::__construct($caption);
$this->control->type = 'color';
$this->control->value = '#000000';
}
/**
* Generates control's HTML element.
* @param string
* @return Nette\Utils\Html
*/
public function getControl($caption = NULL)
{
$this->setOption('rendered', TRUE);
$el = clone $this->control;
return $el->addAttributes(array(
'name' => $this->getHtmlName()
));
}
/**
* Returns control's value.
* @return mixed
*/
public function getValue()
{
return $this->value;
}
}
?>
V registrationFormSucceeded(UI\Form $form, $values) potom zpracovávám
hodnoty a generuji soubor, který předám uživateli v odkazu do flashMessage.
Formulář poté nikam nepřesměruji, ale zůstávám na téže stránce.
Veškeré formulářové prvky si pamatují po odeslání formuláře zadanou
hodnotu, jen ColorPicker ji ztrácí.
Jak to prosím můžu opravit?
- Martk
- Člen | 661
Musíš nastavit v html inputu hodnotu.
Řádky 93–95: https://api.nette.org/…put.php.html#…