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

Zend framework 如何防止在单击zend_form_element_submit按钮时重新加载页面?,zend-framework,zend-form,Zend Framework,Zend Form,我是zend框架的初学者。 我使用zend_form和zend_form_element_submit创建了一个带有提交按钮的表单。单击提交后,代码将根据输入执行数据操作。如果没有输入,什么也不会发生 当我单击提交按钮时,它会重新加载我的网页,即使没有任何更改。 我能阻止页面加载吗?我可以使用zend_form_element_按钮触发事件吗?我如何捕捉它 任何帮助都将不胜感激! 谢谢。无论表单元素中的数据是否“正确”,提交按钮总是会导致表单提交,这通常会导致重新加载页面 使用Zend Fram

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

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

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

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

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

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

view.phtml

函数检查表()
{
如果(表格通过验证){
返回true;//表单将提交
}否则{
return false;//表单不会提交(如果启用了javascript)
}
}
您必须为
form\u passes\u validation
提供逻辑,但如果
onsubmit
返回false,则不会发送表单


请记住,PHP都是服务器端的。您不能通过任何PHP处理来确定表单是否应该发送,这一切都必须是客户端的,否则即使没有输入数据,您也必须接受表单重新加载页面。

感谢您的回复。从我对Ajax的了解来看,它可能会成为我的第一选择。再次感谢。没问题。这将是一个好方法。您可以使用或之类的库来帮助处理Ajax请求。您可能希望将请求提交给Zend Framework控制器,该控制器将使用处理表单并很可能输出成功/失败消息。Zend有一些助手可以为您输出JSON内容,从而禁用布局和视图呈现。我在我的控制器中创建了一个名为testAction的测试操作,我想处理这个表单。不过,我在ajax请求中引用url时遇到了问题。知道我做错了什么吗?这是我的代码:$.ajax({type:“POST”,url:,data:dataString,success:function(msg){
<?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>