0

为什么这个 ajax 调用给了我两个答案?首先,以几乎不引人注意的方式正确答案,然后是另一个?

表单页面

   $(document).on('click','.save-action',function(){
                    //var text = tinyMCE.get('#action-desc').getContent(); 
                    if($("#form-save-action").validationEngine('validate'))
                    {

                        $.ajax({
                            type: "POST",
                            cache: false,
                            data: $("#form-save-action").serialize(),
                            url:"modules/actions/insertaction.php",      

                            success : function (data) {

                               $("#response-message").html(data);

                            }
                        })
                    }

                }); 
Adicionar Acção Nome da acção 描述
格拉瓦

插入动作.php

$exists = $action->actionExists($actionName);



if($exists == 0)
{
        $action->insertAction(array($actionName,$action->clearContent($actionDesc),1));
        echo 'Acção adicionada com sucesso!'; 
}
if($exists >= 1)
{
      echo 'Acção já existe!'; 
}

因此,如果我单击 .save-action 按钮,它会首先给我正确答案,然后是另一个答案。

PS:ajax调用被包装在一个$(document).ready函数中

4

2 回答 2

2

只是给出一个正式的答案(在评论中发现):

该脚本被调用两次。通过 HTML 属性,或者在加载时。您需要确保不运行脚本两次,否则事件处理程序将被添加两次(因此,该函数将运行两次)。

于 2012-10-02T15:32:59.603 回答
-1

尝试直接将动作绑定到类

$('.save-action').click(function(e){
               e.preventDefault();
                //var text = tinyMCE.get('#action-desc').getContent(); 
                if($("#form-save-action").validationEngine('validate'))
                {

                    $.ajax({
                        type: "POST",
                        cache: false,
                        data: $("#form-save-action").serialize(),
                        url:"modules/actions/insertaction.php",      

                        success : function (data) {

                           $("#response-message").html(data);

                        }
                    })
                }

            }); 
于 2012-10-02T15:21:44.750 回答