javascript - Ajax 表单无法与 jquery 附加一起使用

标签 javascript php jquery ajax jquery-forms-plugin

此代码表单可以工作,但它不会调用ajax表单chat_process.php。我需要调用 ajax 表单并发出警报消息。

var html = "";

for(...) {
    html += '<form class="form_deletechatmessage" action="chat_process.php" method="post">';
    html += '<button type="submit" class="trashchat">Delete</button>'   
    html += '<input type="hidden" name="task" value="chatdelete">';
    html += '<input type="hidden" name="token" value="80a86781f1ab0200c17e4a39f42588e5">';
    html += '<input type="hidden" name="id" value="1">';
    html += '</form>';
}

$('#discussion').append(html);

$(".form_deletechatmessage").ajaxForm({ 
    success     : function(result) {        
        var result = trim(result);

        if(result == 'success') {
            alert("Success");
        } else {
            alert(result);
        }
    }       
}); 

整个代码:

function getChatText(){
    $.ajax({
        dataType: 'json',
        url: "chat_process.php?task=refresh&token=" + token + "&lastTimeID=" + lastTimeID,
        success: function(data) {
                var jsonData = JSON.parse(data);
                var jsonLength = jsonData.results.length;
                var html = "";
                for (var i = 0; i < jsonLength; i++) {
                    var result = jsonData.results[i];

                    var ida = $("#ida").val();

                    var you = "";

                    html += '<form class="form_deletechatmessage" action="chat_process.php" method="post">';
                    if(ida == result.aid) {
                        html += '<li class="self">';
                        you = " (ti)"
                    } else {
                        html += '<li class="other">';
                    }
                    html += '<div class="avatar"><img src="http://localhost/project/images/avatars/' + result.aid + '/' + result.avatar + '" /></div>';
                    html += '<div class="messages">';
                    html += '<button type="submit" class="trashchat" title="Izbriši poruku"><i class="fa fa-trash-o"></i></button>'                 
                    html += '<p><font style="font-weight: 600; color: ' + result.color + '">' + result.name + you + '</font> kaže:</p>';
                    html += '<p>' + result.chattext + '</p>';
                    html += '</div>';
                    html += '</li>';
                    html += '<input type="hidden" name="task" value="chatdelete">';
                    html += '<input type="hidden" name="token" value="' + token + '">';
                    html += '<input type="hidden" name="id" value="' + result.id + '">';
                    html += '</form>';

                    lastAdminID = result.aid;
                    lastTimeID = result.id;
                }
                if(html != "" && lastTimeID != 0) {
                    $('.discussion').append(html);

                    var objDiv = $(".discussion");
                    objDiv.scrollTop = objDiv.scrollHeight; 

                    if(ida != result.aid) {
                        audioElement.play();

                        $.titleAlert("Imate novu poruku!", {
                            requireBlur:        false,
                            stopOnFocus:        true,
                            stopOnMouseMove:    true,
                            interval:           700
                        }); 
                    }                                   
                }
        },
    });
}

最佳答案

可能您的 ajax 调用失败,并且您似乎希望成功阻止中出现错误:

if(result == 'success') {
    alert("Success");
} else {
    alert(result);
}

您应该期望错误 block 中出现错误,而不是成功 block 中:

  $(".form_deletechatmessage").ajaxForm({ 
            success     : function(result) {        
                alert(result)
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) { 
                alert(textStatus + errorThrown); 
        }       
    }); 

关于javascript - Ajax 表单无法与 jquery 附加一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33082814/

相关文章:

javascript - 单击时将按钮文本更改为粗体

javascript - 在 ReactJS 前端中使用 Meteor react 变量

javascript - 在另一个 NodeJS 进程中执行 JS 文件(带有日志等)

php - Codeigniter - 查询中的条件

jquery - 如何防止自动完成jquery中的默认选择事件

c# - javascript 中 DateTime.ToOADate() 的等价物是什么?

PHP DOM - 访问新添加的节点

php - MySQL:枚举表——只使用一个还是多个?

jquery - 窗口大小为 480px 后显示 'more' 选项

javascript - 如何在 e.preventDefault() 之后恢复执行提交事件?