2014-01-19 45 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