【问题标题】:Issue in submitting form through tr:commandButton - POST request is not generated通过 tr:commandButton 提交表单时出现问题 - 未生成 POST 请求
【发布时间】:2015-06-19 11:01:59
【问题描述】:

在我的 JSF 1.2 应用程序中,我使用 trinidad 扩展服务 addscript 功能来调用 javascript 函数。

我可以从以下 javascript 控制台日志中看到正在调用 js 方法。 但是没有生成 POST 请求。 页面中有许多其他(正常)按钮可以正常工作。 我的控制台中没有 JS 错误。我已确保所有包含的页面都没有任何表单,这是唯一的表单。

我最头疼的是,它在我的本地工作区中运行良好,而且我只有在直接点击我的应用程序 URL 时才会遇到问题。这发生在所有 IE 版本中。

有人可以建议可能是什么问题吗?

在 Bean 中:

FacesContext facesContext = FacesContext.getCurrentInstance();
                      ExtendedRenderKitService service = Service.getRenderKitService(
                                  facesContext, ExtendedRenderKitService.class);
                      service.addScript(facesContext, “clickHiddenButton();”);

Javascript:

function clickHiddenButton () {
      if(null != console)
            console.log('before calling hidden button for close');
      document.getElementById('hiddenButton').click();
      if(null != console)
            console.log('after calling hidden button for close'); 
}

我的页面隐藏按钮组件:

<tr:commandButton id="hiddenButton" action="#{bean.actionHidden}" immediate="true"></tr:commandButton>                                                                                                                                                                  

【问题讨论】:

  • 您是否排除了所有stackoverflow.com/questions/2118656/…
  • 是的,我做的第一件事!
  • 您似乎暗示它仅发生在 IE 中,而不发生在其他浏览器(Chrome、Firefox 等)中。这是真的吗?
  • 不,实际上我们的应用程序不支持任何其他浏览器,所以我只能检查所有 IE 版本。
  • 您的 JavaScript 暗示您在表单上使用 prependId="false"。这是真的吗?

标签: javascript jsf trinidad


【解决方案1】:

在我通过以下代码单击隐藏按钮之前使方法暂停 500 毫秒后,它正在工作。可能,这不是正确的方法(这就是我没有接受这个答案的原因)。我相信有人可以清楚地解释这个问题。

function clickHiddenButton () {
      setTimeout('clickHiddenButtonAfterDelay()',500) 
}



 function clickHiddenButtonAfterDelay() {
          if(null != console)
                console.log('before calling hidden button for close');
          document.getElementById('hiddenButton').click();
          if(null != console)
                console.log('after calling hidden button for close'); 
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2017-02-18
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多