Contributte\Form-multiplier AJAX addCreateButton

FilipDolezal
Člen | 8
+
0
-

Dobrý den,
celý den se snažím zAJAXovat createButton a removeButton u Contributte\Form-multiplier.
Ať zkusím cokoliv, tak se stránka stejně refreshne. Nevím, kde je chyba.

V presenteru si vytvořím formulář.

$multiplier = $form->addMultiplier('multiplier', function (Nette\Forms\Container $container, Nette\Forms\Form $form) {
    $container->addText('nejakyInput');
}, 1, 10);

$multiplier->addCreateButton('Přidat řádek')
->addOnCreateCallback(function (Contributte\FormMultiplier\Submitter $submitter) { //Submitter nebo SubmitButton?
    $submitter->onClick[] = function () : void  {
        $this->redrawControl("formSnippetArea");
        $this->redrawControl("multiplierSnippet");
    };
});

$multiplier->addRemoveButton('Smazat')
->addOnCreateCallback(function (Nette\Forms\Controls\SubmitButton $submitter) { //Submitter nebo SubmitButton?
    $submitter->onClick[] = function () {
        $this->redrawControl("formSnippetArea");
        $this->redrawControl("multiplierSnippet");
    };
});

a v Latte poté vykreslím formulář

{block content}
{snippetArea formSnippetArea}
	<form n:name="myForm">
		...
		{include multiplierBlock}
	</form>
{/snippetArea}
{/block}

{define multiplierBlock}
{snippet multiplierSnippet}
	<div n:multiplier="multiplier">
		{input nejakyInput}
    	{btnRemove 'class' => 'ajax'}
	</div>
	{btnCreate multiplier, class => 'ajax'}
{/snippet}
{/define}

Proč se mi to nechce zajaxovat? Musím zajaxovat celý formulář?
Za jakékoliv rady budu moc vděčný :)

Pepino
Člen | 183
+
0
-

Máš nalinkované naja.js nebo nette.ajax.js?

FilipDolezal
Člen | 8
+
0
-

Pepino napsal(a):

Máš nalinkované naja.js nebo nette.ajax.js?

vojtech-dobes/nette.ajax.js

Robin Martinez
Člen | 79
+
0
-

A ostatni ajax volani funguji spravne?

Nemel by to byt rozdil, ale nedavno jsem to resil a mam akorat

‚class‘ ⇒ ‚ajax‘

na celym formu, ne jen na tech tlacitkach. Jinak bych otestoval, zda to ‚nefunguje‘ stejne bez pouziti:

{include multiplierBlock}

a narvat tam ten kod primo, estli to nedela ten snippet.

Pak mi to zas delalo to, ze se sice volal spravne ajax, ale neprekreslila se sablona (nepridaly se nove radky), takze se formular cely musel obalit snippet areou. Ale to je jiny problem.