zend-framework - 单击 zend_form_element_submit 按钮时如何防止页面重新加载?

标签 zend-framework zend-form

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

当我单击提交按钮时,即使没有任何更改,它也会重新加载我的网页。 有什么办法可以阻止该页面加载吗?我可以使用 zend_form_element_button 来触发事件吗?我该如何捕捉它?

任何帮助将不胜感激! 谢谢。

最佳答案

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

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

这是使用onsubmit的示例。您可以在 Controller 上创建表单,将其分配给 View ,然后在 View 中添加 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 处理来确定是否应发送表单,这一切都必须在客户端进行,否则即使没有输入数据,您也将不得不重新加载页面的表单。

关于zend-framework - 单击 zend_form_element_submit 按钮时如何防止页面重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540156/

相关文章:

zend-framework2 - 如何在 Zend Framework 2 中为表单字段集使用服务?

php - 将标签包裹在 zend 表单中

php - Require.js 和 Zend 框架

git - 使用 Zend Repo 作为 Origin 从 master 创建一个本地 Git repo

php - Zend_Form 获取错误

php - Zend Form Radio 多选项标题属性

php - Zend 框架 : Setting decorators and labels - should this be done in the view or the form class?

zend-framework - 如何对对象使用 Zend Framework 的部分循环

zend-framework - Durandal:如何将配置数据从 HTML Host 传递到 ViewModel?

php - 您将如何前往 Zend Framework 项目中的购物车 "design"?