Shodná ID inputů uvnitř formů v komponentách vytvořených Multiplierem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Sajmi
- Člen | 9
Nazdar, našel jsem chybu – když generuji komponenty přes Multiplier a ty komponenty mají uvnitř formuláře, tak jednotlivé inputy těchto formulářů mají stejná id – viz http://dwd.cz/…form/try-ids.
Toto chování mi znemožňuje mít víc instancí TinyMCE na jedné stránce, jelikož se chytne první textarei a o ostatní, které mají stejné id jako první, už nejeví zájem.
Provizorně jsem si to opravil ve třídě Nette\Forms\Controls\BaseControl ve fci getHtmlId() (https://api.nette.org/…rol.php.html#170):
public function getHtmlId()
{
if ($this->htmlId === FALSE) {
return NULL;
} elseif ($this->htmlId === NULL) {
//$this->htmlId = sprintf(self::$idMask, $this->getForm()->getName(), $this->lookupPath('Nette\Forms\Form'));
$this->htmlId = $this->getForm()->getElementPrototype()->id . '-' . $this->getName();
}
return $this->htmlId;
}
Takto mi to funguje a přijde mi to správnější, ale nejsem si jistej, jestli není čistší cesta než přes getElemntPrototype()->id.
(Nette 2.0 stable)