2014-01-19 44 views
0

我有一個用jsf寫的消息頁,並且在這個頁面中我有一個包含消息標題作爲commandlink的表。在這些命令鏈接中,我嵌套了ajax來請求我的bean從db讀取消息內容並將其顯示在頁面上。我通過在textearea中顯示消息內容來測試此功能。但問題是,我想在JavaScript警報中顯示內容。因此,無論何時點擊命令鏈接,警報都會顯示消息的內容。但是,如果我將javascript方法定義爲commandlink onclick屬性,那麼它將在ajax請求之前運行,並且不會顯示任何內容! 我認爲我們需要一個屬性來定義一個在ajax請求完成後運行的javascript方法。但是那個屬性是什麼? thanx任何有用的答案!ajax請求完成後做一個javascript提醒

+0

RTFM:http://api.jquery.com/jquery.ajax/ 「成功」 選項。 –

+0

請給我確切的代碼示例 – hamid

+0

你說你已經有了在textarea中顯示消息的功能。在警報中顯示它應該是一個非常微不足道的變化。 –

回答

0

XHTML

<h:commandLink id="button" value="button"> 
     <f:ajax render="@this" 
      onevent="openPopup" 
      listener="#{myBean.getData}" /> 
</h:commandLink> 

的Javascript

function openPopup(data){ 
    if(data.status == "success"){ 
     // open popup with your message 
    } 
} 
0

new XMLHttpRequest?嘗試玩弄此代碼

<!DOCTYPE HTML> 
<html> 
<head><title></title></head> 
<body> 
<input type="button" id="foo" value="load url" /><br/> 
<input type="text" id="url" /><br/> 
<textarea id="responses"></textarea> 

<script type="text/javascript"> 
document.querySelector("#foo").addEventListener("click",function(ev){ 
var xhr=new XMLHttpRequest(); 
var url=document.querySelector("#url").value; 
xhr.open("GET",url); 
xhr.addEventListener("readystatechange",function(ev){ 
var xhr=ev.target; 
if(xhr.readyState<4)return; 
document.querySelector("#responses").value+=xhr.responseText; 
alert(xhr.responseText); 

}); 
xhr.send(); 
}); 
</script> 
</body></html> 
+0

與XMLHttpRequest無關。我正在談論jsf中的ajax! – hamid