对于zend框架,我是初学者。 我使用zend_form和zend_form_element_submit创建了一个带有提交按钮的表单。单击提交后,代码将根据输入执行数据操作。如果没有输入输入,则没有任何反应。
当我点击提交按钮时,即使没有任何更改,它也会重新加载我的网页。 我能以任何方式阻止该页面加载吗?我可以使用会触发事件的zend_form_element_button吗?我怎么抓住它?
任何帮助都将受到赞赏! 谢谢。
答案 0 :(得分:2)
提交按钮将始终导致表单提交,这通常会导致页面被重新加载,无论任何表单元素中的数据是否“正确”。
使用Zend Framework,您可以向表单添加一个JavaScript onsubmit
事件,该事件可以检查表单元素并决定是否应该提交表单。或者您可以使用Ajax提交不会导致页面重新加载的表单。
以下是使用onsubmit
的示例。您可以在控制器上创建表单,将其分配给视图,然后在视图中添加onsubmit
属性和相关代码。
<?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处理以确定表单是否应该发送,这一切都必须是客户端,或者即使没有输入数据,您也必须使用表单重新加载页面。