2014-02-19 79 views
1

我是AJAX/Jquery/Javaascript的新手,所以請原諒我的無知。我發現一些代碼可以幫助我在單擊表單提交按鈕後顯示AJAX窗口。10秒後隱藏javascript信息

下面是代碼:

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的經驗,不斷破壞代碼。

+0

ajax函數通常支持從服務器返回數據時調用的回調函數或錯誤條件。你的「隱藏」邏輯應該進入你的ajax庫的回調部分。 –

+0

雖然實際的ajax代碼在哪裏? –

+0

是否實際上調用了AJAX調用?從有限的代碼片段中,您不會調用AJAX調用。相反,您只需加載「加載請稍候」,然後在表單上執行POST。 – PressingOnAlways

回答

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發送數據,然後等待並響應響應將變得更清晰。

+0

您的解決方案非常出色!我同意,使用「REAL」AJAX會好得多。我知道這很簡單,但似乎每次我刺傷它時,都會浪費時間。這可能與我缺乏經驗以及使用php類TCPDF的事實有很大關係。如果您可以分享任何可幫助我完成此任務的鏈接或摘錄,我將非常感激。 – PatC

+0

您不必使用jQuery來執行ajax調用,從這裏開始:http://www.w3schools.com/ajax/,從一章轉到下一章,看看示例。我更喜歡使用jQuery,下面是API(頁面底部的大量例子)https://api.jquery.com/jQuery.ajax/,如果你只是谷歌「站點:stackoverflow.com jquery ajax幫助」你會看到很多簡單的例子和​​答案。 – gfrobenius

+0

非常感謝。我以前經歷過很多次W3S,但一直未能通過AJAX來實現。但我確定這只是我而已。一些增加的持久性將使我在那裏的其餘部分。非常感謝,再次! – PatC