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);

                            }
                        })
                    }

                }); 
AdicionarAcçãoNomedaacçãoDescrição
グラバー

Insertaction.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ボタンをクリックすると、最初に正しい答えが返され、次にもう1つの答えが返されます。

PS:ajax呼び出しは$(document).ready関数にラップされています

4

2 に答える 2

2

正式な回答をするためだけに(コメントで発見されました):

スクリプトは2回呼び出されています。HTML属性を介して、またはロード時に。スクリプトを2回実行しないようにする必要があります。そうしないと、イベントハンドラーが2回追加されます(そのため、関数は2回実行されます)。

于 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 に答える