【问题标题】:How to Get the Ajax success message event more than once in succession如何连续多次获取Ajax成功消息事件
【发布时间】:2012-04-23 01:43:16
【问题描述】:

我有一个表格,用于填写 codeigniter 日历。首先,我会说表单与 Ajax 和我的控制器配合得很好。我第一次提交表单时,所有数据都进入数据库,我得到了我的成功事件,它只是重复我输入的内容,然后它消失了。效果很好。

第二次输入数据(我通常连续输入数据至少5-6次)数据进入数据库但没有第二个事件消息。或第三、第四等

我的问题是如何在每次提交表单时触发成功回调?

我的 jquery

$(function() {
$('.error').hide();
$("#calen").submit(function() {
var data = $('#calen').serialize();
$.ajax({
url: ("http://XXXXXX.net/mycal/cale"),
data: data,
type: "POST",
success: function(msg){
    $('#cal').append(msg);
    $('#cal').delay(5000).fadeOut(1500);
    }      

});
return false;
});
});

我知道这必须很简单。感谢您的宝贵时间

【问题讨论】:

    标签: javascript jquery ajax forms jquery-animate


    【解决方案1】:

    看起来问题是您淡出,但从未淡入。尝试添加:

    $('#cal').fadeIn(1500);
    

    在将消息附加到元素之前。

    【讨论】:

    • 在 Firefox 中有效,在 chrome 中无效。但是,它也显示了以前的输入。在第三个输入它显示 2012-04-22 - test12012-04-22 test22012-04-22 test3。奇怪,但我可以忍受它
    • @Brad 如果你想清除以前的输入,它应该相当简单。如果 cal div 一开始是空的,你可以只使用 html 方法而不是 append。否则,您必须编写更多登录信息以确保保留 cal 中的原始模板。
    • 好吧,这很有道理,我可能应该从 html 开始。我假设 append 保留了我之前提交的所有内容
    • @Brad 是的,正确。还有 prependwrap 和一堆更多的操作函数。如果您有兴趣,请查看 JQuery 文档:api.jquery.com/category/manipulation
    • 我刚刚在 nettuts 上了 30 天的 Jquery 课程,我相信这会有所帮助。恐怕我还没有开始正确地思考代码
    【解决方案2】:

    我注意到第一次更新会隐藏 div。我没有看到您为第二次更新重新显示了#cal div。您是否尝试过这样做,或者在那里发出警报以查看它是否真的被解雇了?

    【讨论】:

    • 根据萤火虫肯定是被解雇了
    猜你喜欢
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    相关资源
    最近更新 更多