ako ziskat ClientScript daneho formulara?

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

Ahoj,

chcem ziskat ClientScript pre dany formular. v presenteri mam tovarnicku

<?php
	$form = new AppForm($this, 'jokeForm');
	$this['jokeForm']->getRenderer()->getClientScript()
?>

ale hodi to vynimku Argument 1 passed to InstantClientScript::__construct() must be an instance of Form, null given . Formular by mal byt ukotveny k presenteru tym volanim

<?php
$form = new AppForm($this, 'jokeForm');
?>

ci sa mylim?

Vdaka za kazdu radu.

redhead
Člen | 1313
+
0
-

je to proto, že form se přiřadí do rendereru až ve metodě render() aspoň podle API. Což mi přijde hodně divné. Nemohl by se přiřadit rovnou v constructoru?? Jesli to něčemu nevadí. Ale přijde mi, že pokud chceme renderovat formulář, je to hlavní objekt pro renderer, ze kterého vychází při renderování, měl by ho znát od začátku…

Matúš Matula
Člen | 256
+
0
-

vdaka za odpoved a vysvetlenie. Vyriesil som to nakoniec nasledovne:

<?php
	$script = new InstantClientScript($form);
	$form->getRenderer()->setClientScript($script);
	$script->doAlert = 'if (element) element.focus(); $.jGrowl(message);';

?>