【发布时间】:2010-12-05 18:03:18
【问题描述】:
验证表单后,我想在 Symfony 中调用一个 javascript 函数,但它无效。我在哪里可以调用这个函数?
【问题讨论】:
标签: javascript validation forms symfony1
验证表单后,我想在 Symfony 中调用一个 javascript 函数,但它无效。我在哪里可以调用这个函数?
【问题讨论】:
标签: javascript validation forms symfony1
您需要从您的视图中拨打电话。您究竟想如何做到这一点取决于您要达到的目标。
例如:
public function executeFormSubmitAction(sfWebRequest $request)
{
$this->form = new MyForm();
$this->form->bind($request->getParamter($$this->form->getName());
$this->valid = null;
if($this->form->isValid())
{
// do stuff with values
$this->valid = true;
}
else
{
$this->valid = false;
}
}
然后在你看来:
<?php if($valid === true): ?>
Thanks!
<?php else: ?>
<?php echo $form; ?>
<?php if(false === $valid): ?>
<!-- your javascript call and related stuff -->
<?php endif; ?>
<?php endif; ?>
如果$valid 的每个条件的视图具有完全不同的结构,那么您可能想要使用实际将所有内容放在部分中,然后在条件中使用include_partial,或者您可以使用单独的视图模板和在您的操作中使用setTemplate 来呈现正确的操作...或者如果它们真的很复杂并且需要特殊逻辑,您可以使用forward 并完全分开操作。或者,如果这是一个 ajax 提交,您可以返回 json 而不是 html,然后执行您的 js 函数作为回调的一部分 - 检查返回的 json 中是否有标记验证结果的变量。
这完全取决于你。
【讨论】: