【问题标题】:After ajax request completed do a javascript alertajax 请求完成后做一个 javascript 警报
【发布时间】:2014-01-19 08:41:55
【问题描述】:

我有一个用 jsf 编写的消息页面,在这个页面中我有一个包含消息标题的表格作为命令链接。在这些命令链接中,我嵌套了 ajax 以请求我的 bean 从 db 读取消息内容并将其显示在页面上。我通过在 textearea 中显示消息内容来测试此功能。但问题出在我想在 javascript 警报中显示内容。因此,每当我单击命令链接时,警报都会显示消息的内容。但是,如果我将 javascript 方法定义为 commandlink onclick 属性,那么它将在 ajax 请求之前运行,并且不会显示任何内容! 我认为我们需要一个属性来定义将在 ajax 请求完成后运行的 javascript 方法。但是那个属性是什么? 感谢您提供任何有用的答案!

【问题讨论】:

  • RTFM:api.jquery.com/jquery.ajax“成功”选项。
  • 请给我确切的代码示例
  • 您说您有在文本区域中显示消息的功能。在警报中显示它应该是一个非常微不足道的变化。
  • 我正在寻找该属性:在 jsf 中完成 ajax 请求后执行 javascript 函数。
  • @MarcB:OP 在哪里说他在使用 jQuery?你不应该 RTFQ 吗?

标签: javascript html ajax jsf commandlink


【解决方案1】:

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
  }
}

【讨论】:

    【解决方案2】:

    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>
    

    【讨论】:

    • 与 XMLHttpRequest 无关。我说的是jsf中的ajax!
    猜你喜欢
    • 2021-06-25
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多