0

フォームフィールドの値をリセットするにはどうすればよいですか?

action:
            $this->form = new $class();
            $this->form->bind($request->getParameter('signin'));
            if ($this->form->isValid())
            {
                $values = $this->form->getValues();
                            $this->redirect('@example');
                    }
            else
            {
                if ($this->form->hasGlobalErrors())
                    $this->errorclass = 'error';
            }
            $this->form->resetFormFields();
            return $this->renderPartial('ajax/example);

私は2つのフィールドemailとpwを持っています:それらが空であるというエラーの後にそれらをリセットしたい

これは機能しません:(

$this->form->resetFormFields();

解決策はありますか?よろしくお願いします

4

1 に答える 1

1

フォームに 2 つのフィールド (email と pw) しかない場合は、フォームを再起動するだけです。

else
{
  if ($this->form->hasGlobalErrors())
    $this->errorclass = 'error';
  $this->form = new $class();
}

フォームにさらに多くのフィールド (email と pw だけでなく) があり、他のフィールド値を保持したい場合は、email と pw の値を削除して、新しいフォームをバインドできます。

$values = $request->getParameter('signin');
$this->form->bind($values);
if ($this->form->isValid())
{
  $this->redirect('@example');
}
else
{
  if ($this->form->hasGlobalErrors())
    $this->errorclass = 'error';
  $values['pw'] = '';
  $values['email'] = '';
  $this->form = new $class();
  $this->form->bind($values);
}
于 2013-10-02T19:18:14.800 に答える