javascript - 如何使用 javascript/JQuery 调用 jsf 页面上的隐藏按钮

标签 javascript jquery jsf-2 primefaces

我发现这个问题已经以不同的形式被问了好几次,但我仍然需要一些帮助,因为无法像示例中那样得到这个。

我有一个带有 PrimeFaces 的 JSF 2 页面,它包含以下隐藏按钮,我需要从 javascript 在 pageUnLoad 上调用该按钮。

JSF 拥有:

// Supposed to be hidden eventually
<h:commandButton id="doStuff" action="#{myBean.callMethod()}" />

JavaScript 具有:

var stuff = new Object();

$(window).bind('beforeunload', function() {
    stuff.doStuff();
});

stuff.doStuff = function() {
    // var hidden = $("#doStuff"); // Incorrect
    var hidden = document.getElementById("formId:doStuff"); // Correct
    if (hidden === undefined) {
            // Some logging
    } else {
        hidden.click();
    }
}

托管Bean具有:

@ManagedBean(name = "myBean")
@RequestScoped
public class MyBean {
    public void callMethod() {
        // Do stuff
    }
}

通过调试我可以看到,当手动单击按钮时,它会正确触发事件。 我还能够验证 JavaScript 是否被正确调用,它“似乎”找到了该元素,并为其执行“.click()”,但我没有在服务器端捕获任何事件。

我似乎正在按照其他类似问题的指示这样做,但我缺少最终结果。

如有任何帮助,我们将不胜感激,谢谢。

最佳答案

隐藏按钮可以通过使用JavaScript来点击

document.getElementById('doStuff').click();

但是,命名容器时应该小心。隐藏按钮必须用 <h:form> 括起来标签和prependid它的属性应该设置false 。否则,您可以访问 id formId:doStuff 的按钮.

另请参阅

Naming Container in JSF2/PrimeFaces

Cannot click hidden button by JavaScript

关于javascript - 如何使用 javascript/JQuery 调用 jsf 页面上的隐藏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17834491/

相关文章:

jquery - 需要在img src末尾添加一个变量

jquery - 无法隐藏 jQuery 验证插件的错误标签

javascript - Ember , Ember 验证匹配密码和确认

javascript - 检测到 :first-child support

javascript - 使用 jQuery 删除动态创建的元素上的 mouseenter 事件

ajax - h :outputLink with f:ajax - method called, 但未显示链接

java - Jsf 2.0 带有 Primefaces 的自定义标签

servlets - 从 servlet 过滤器重定向到 jsf 返回未呈现为 html 的实际 jsf 代码

javascript - 如何防止 anchor 多次触发事件冒泡

javascript - 面向对象的 Javascript - 如何在类中定义类?来自 C# 示例