10秒后隐藏javascript消息

时间:2014-02-19 18:52:22

标签: javascript php

我是AJAX / Jquery / Javaascript的新手,所以请原谅我的无知。我找到了一些代码来帮助我在单击表单提交按钮后显示AJAX窗口。

以下是代码:

var ray={
ajax:function(st)
    {
        this.show('load');
    },
show:function(el)
    {
        this.getID(el).style.display='';
    },
getID:function(el)
    {
        return document.getElementById(el);
    }
}

以下是表单的HTML:

<div id="load" style="display:none;">Loading... Please wait.</div>
<form action="test_form.php" method="POST" onsubmit="return ray.ajax()">
<input type="hidden" name="value1" value="value1>">
<input type="submit" value="Submit">
</form>

单击按钮时加载消息显示正常,但永远不会消失。理想情况下,我希望在工作完成后消息消失,但在10秒后隐藏它也可以正常工作。

我尝试过使用hide()和setTimeout()进行各种编辑,但是我缺乏使用AJAX / JavaScript的经验会破坏代码。

1 个答案:

答案 0 :(得分:3)

您可以: http://jsfiddle.net/DHgN4/1/

你在下面的评论中说你的问题,你只想让它在10秒后关闭。这样就可以了。

显然我不得不评论你的form因为小提琴不能调用test_form.php,这就是为什么我创建了一个按钮来演示代码。它应该足以让你前进。小提琴的主要部分是这一行:

setTimeout(function(){$("#load").hide();},10000);

这将使用jQuery在10秒后隐藏它。如果您不想使用jQuery,请将其更改为此...

setTimeout(function(){document.getElementById('load').style.display='none';},10000);

我不明白你为什么要这样设置。做一个真正的ajax调用,使用ajax发送数据,然后等待响应并做出反应将更加清晰。