我正在使用cakePHP,在我看来,我有一个带有ajax提交按钮的表单。我用蛋糕帮助器渲染它。
<form method="post" class="form-class" id="form-id" name="form1" style="display: none">
*[content for the form]*
<?php
echo $ajax->submit('Ok',
array(
'id'=> 'submit1',
'url'=> array('controller'=>'c','action'=>'action1'),
'complete'=> 'jsfunction()'
));
echo $form->button('Submit',array('id'=>'cancel','value'=>'Cancel','onClick'=>'clickCancel()'));
?>
</form>
单击“提交”时,将调用控制器操作两次。我搜索stackOverlow如果这个问题存在但找不到有效的解决方案。没有语法错误。
非常感谢帮助。感谢。
答案 0 :(得分:1)
这是自动生成的代码:
$("#submit1367508668").bind('click', function(){
$.ajax({
async:true,
type:'post',
complete:function(request, json) {
getServerResponse(request)
},
url:'/recipients/add',
dataType:'json',
data:$(this).parents('form:first').serialize()});
blockUI();
})
答案 1 :(得分:1)
听起来像ajax事件处理程序没有阻止默认行为。 尝试设置表单的onsubmit行为内联以防止它(像蛋糕的助手一样):
<form onsubmit="event.returnValue = false; return false;" method="post" class="form-class" id="form-id" name="form1" style="display: none">
我建议您查看FormHelper以了解一些有用的快捷方式。