ajax formular po odeslani reset formulare (vymazani)
- dehtak
- Člen | 113
Zdravim,
jak vymazat formular po odeslani ajaxem ?
Po odelaslani mi zustane text v polich
Tohle nefunguje
protected function createComponentMailForm(): Form{
$form = new Form;
$form->getElementPrototype()->class('ajax');
$form->addText('name','Name');
$form->addEmail('email', 'E-mail');
$form->addTextArea('zprava', 'Zprava');
$form->addSubmit('send', 'Odeslat');
$form->onSuccess[] = [$this, 'MessageSend'];
return $form;
}
public function MessageSend(Form $form, \stdClass $values): void{
$form->setValues([], True);
}
<form n:name=mailForm>
<div class="row">
<div class="col-sm-6 form-group">
<input class="form-control" id="name" n:name=name placeholder="Name" type="text" required>
</div>
<div class="col-sm-6 form-group">
<input class="form-control" id="email" n:name=email placeholder="Email" value="" type="email" required>
</div>
</div>
<textarea class="form-control" id="comments" n:name=zprava placeholder="Zprava" value="" rows="5"></textarea><br>
<div class="row">
<div class="col-sm-12 form-group">
<button class="btn btn-default pull-right ajax" type="submit">Odeslat</button>
</div>
</div>
</form>
Editoval dehtak (19. 6. 2020 13:39)
- dakur
- Člen | 493
@dehtak Potřebuješ snippety. Viz dokumentace. Na
<form>
navěsíš n:snippet="nazev"
(definuješ
obsah k překreslování při AJAX requestu) a po
$form->setValues(...)
zavoláš ještě
$this->redrawControl('nazev')
(řekneš, že tohle chceš
překreslit).
Editoval dakur (19. 6. 2020 14:08)