Modální okno s formulářem a validace – AJAX
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ondrej256
- Člen | 187
Zdravím,
používám modální okno bootstrapu
http://getbootstrap.com/javascript/#…
Do modálního okna vykresluju formulář, který následně odesílám
ajaxem. Bohužel mně nefunguje validace.
Když kliknu na tlačítko formuláře tak se odešle (bez js kontroly).
HomepagePresenter
public function createComponentForm()
{
$form = new Form();
$form->getElementPrototype()->class[] = 'ajax'; // kdyz je to ajaxove pak se nevypisuje validace
$form->addHidden("code")
$form->addText("title", "")
->addRule(Form::FILLED, "Název musí být vyplněn.");
....
$form->addSubmit("send","Přidat")
// ->setAttribute("class", "btn btn-primary btn-success")
->setAttribute("class='btn btn-default' data-dismiss='modal'");
$form->onSuccess[] = callback($this, 'formSubmitted');
return $form;
}
public function formSubmitted(Form $form)
{
$this->redrawControl('formSnippet');
$this->presenter->flashMessage("funguje to");
}
default.latte
<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Dobropis
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel"> Přidat </h4>
</div>
<div class="modal-body">
{snippet formSnippet}
{control form}
<div n:foreach="$flashes as $flash" class="flash {$flash->type}">{$flash->message}</div>
{/snippet}
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
Nevítě někdo co dělám špatně?
- sadamek
- Člen | 16
A máš na stránce javascript netteForms.js? A pokud chceš ajax, tak i nette.ajax.js ?
Dále vidím, že voláš redrawControl před flashMessage, zkus to obrátit.