Pridávanie prvkov do formulára cez ajax submit nepovolí nastaviť defaultValues
- Čamo
- Člen | 798
Zdravím,
Mám formulár kde je na konci textové pole a jeden button, ktorý po submite
pridá do formulára nové pole podľa toho textového. No a všetko to funguje
až na to, že sa nevyplní default value v tom novovytvorenom formulárovom
elemente.
// toto je v success metode.
if( $form->isSubmitted()->getName() == 'addUserSbmt' )
{
$this->addUser( $values->newUserContainer );
}
a metoda addUser vyzerá takto:
public function addUser( $data )
{
try
{
$user = new \stdClass();
$user->name = $data['newUser'];
$user->key = Strings::webalize( $data['newUser'] ) . time();
$this->sessionSection->users[$user->key] = $user;
$name = $this['companyUsersForm']->addText("user_name_$user->key")
->setAttribute( 'class', 'form-control' )
->setDefaultValue( $user->name );
$this['companyUsersForm']->addButton( "user_remove_$user->key", 'Odstrániť' )
->setAttribute( 'class', 'btn btn-danger btn-sm' );
$this->flashMessage( 'Spoluvlastník ' . $user->name . ' bol pridaný.' );
}
catch( \Exception $e )
{
Debugger::log( $e, Debugger::ERROR );
$this->flashMessage( 'Pri ukladaní údajov došlo k chybe.' );
}
if( $this->getPresenter()->isAjax() )
{
$this->redrawControl();
}
return $user;
}
Metoda setDefaultValue má totiž takúto podmienku
if( $this->isDisabled() || !$form || !$form->isAnchored() || !$form->isSubmitted() )
cez ktorú neprejdem. Nevie niekto ako to obísť? Refreshu by som sa chcel vyhnúť.
Editoval Čamo (12. 9. 2018 12:24)