在提交来自时显示AJAX Loader

时间:2012-04-09 06:42:35

标签: php ajax

我想在用户尝试提交表单时显示ajax加载程序图标,并阻止页面内容(淡入)。

我有这个代码,但它工作错误,它在提交表单之前显示加载程序图标并在提交表单后隐藏它。

<script type="text/javascript">
function ajaxFunction() {
    var xmlHttp;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    }
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
            document.getElementById("content").innerHTML = xmlHttp.responseText;
        }
    }
    xmlHttp.open("GET", "?action=sms&pageaction=Send SMS", true);
    xmlHttp.send(null);
}​
</Script>

我有DIV:

<!---progress-->

<div id="content" > 
  <br/>
  <br/>
  <br/>
  <h1>Loading ... Please wait </h1>
  <br/>
  <br/>
  <img src="image//loading.gif" />
    </div>

<!---progress-->

submit按钮正在调用ajaxFunction()

<input type="submit" name="pageaction"  class="send_sms" value="Send SMS" onclick="ajaxFunction()" />

任何人都可以帮我纠正我的代码,使其工作如下:

  1. 在提交表单时显示透明背景以阻止页面。
  2. 显示加载图标。
  3. 隐藏透明背景并隐藏加载图标。
  4. 全部谢谢

1 个答案:

答案 0 :(得分:1)

content设置为隐藏。你可以这样做:

<div id="content" style="display:none;">
  ...
</div>

在发送AJAX请求之前将其显示。

document.getElementById("content").style.display = "block";​​​​​​
xmlHttp.send(null);