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 个字段(电子邮件和密码),您可以简单地重新初始化表单。

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 回答