Ajax表单提交。表格提交两次

时间:2011-01-28 04:33:48

标签: ajax cakephp form-submit double-submit-problem

我正在使用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如果这个问题存在但找不到有效的解决方案。没有语法错误。

非常感谢帮助。感谢。

2 个答案:

答案 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以了解一些有用的快捷方式。