如何在单击zend_form_element_submit按钮时阻止页面重新加载?

时间:2012-03-02 20:49:18

标签: zend-framework zend-form

对于zend框架,我是初学者。 我使用zend_form和zend_form_element_submit创建了一个带有提交按钮的表单。单击提交后,代码将根据输入执行数据操作。如果没有输入输入,则没有任何反应。

当我点击提交按钮时,即使没有任何更改,它也会重新加载我的网页。 我能以任何方式阻止该页面加载吗?我可以使用会触发事件的zend_form_element_button吗?我怎么抓住它?

任何帮助都将受到赞赏! 谢谢。

1 个答案:

答案 0 :(得分:2)

提交按钮将始终导致表单提交,这通常会导致页面被重新加载,无论任何表单元素中的数据是否“正确”。

使用Zend Framework,您可以向表单添加一个JavaScript onsubmit事件,该事件可以检查表单元素并决定是否应该提交表单。或者您可以使用Ajax提交不会导致页面重新加载的表单。

以下是使用onsubmit的示例。您可以在控制器上创建表单,将其分配给视图,然后在视图中添加onsubmit属性和相关代码。

view.phtml

<?php

$this->form->setAttrib('onsubmit', 'return checkForm()');

echo $this->form;
?>

<script type="text/javascript">
  function checkForm()
  {
      if (form_passes_validation) {
          return true; // form will submit
      } else {
          return false; // form will NOT submit (if javascript is enabled)
      }
  }
</script>

您必须为form_passes_validation提供逻辑,但如果onsubmit返回false,则表单将不会被发送。

请记住,PHP是服务器端的全部。您不能进行任何PHP处理以确定表单是否应该发送,这一切都必须是客户端,或者即使没有输入数据,您也必须使用表单重新加载页面。