为什么这个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ção
Nomedaacção
Descriçã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按钮,它会首先返回正确的答案,然后是另一个。
PS:ajax调用包含在$(document).ready
函数
答案 0 :(得分:2)
只是给出正式答案(在评论中发现):
脚本被调用两次。通过HTML属性或加载时。您需要确保不运行脚本两次,否则事件处理程序将被添加两次(因此,该函数将运行两次)。
答案 1 :(得分:-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);
}
})
}
});