javascript - 带有 jsf 组件的不显眼的 javascript ...怎么样?

标签 javascript jquery jsf jquery-events unobtrusive-javascript

我的页面上有一些jsfcommandLinks”。对于这些commandLinks,有onClick事件。目前我已经直接编写了 onclick 函数作为这些 commandLink 的 onclick 属性。

由于它是一个命令链接,因此它将创建 html anchor 标记,并且还附加一些用于表单提交的 jsf JavaScript。当我直接在 onclick 属性中编写 JavaScript 时,jsf 将在插入它自己的 JavaScript 时处理该 JavaScript。但是,当我通过 jQuery 附加相同的事件处理程序时,它在执行事件处理程序之前将无法识别并提交表单。

这个问题有什么好的解决办法吗?

最佳答案

您需要让 jQuery 函数执行与 JSF 在幕后执行的操作相同的操作:将 onclick 属性中指定的自定义 onclick 函数包装在另一个函数中,该函数执行提交提交的标准 JSF 作业表单取决于自定义 onclick 函数的结果。

下面是一个启动示例,假设所有这些链接元素都具有 link 类,并且您的自定义 onclick 函数是 yourCustomFunction()

$(".link").each(function(i, element) {
    var originalJsfOnclick = element.onclick; // Grab the JSF-generated onclick function.
    element.onclick = null; // Reset it.

    $(element).click(function(event) {
        if (yourCustomFunction()) { // First call your function.
            originalJsfOnclick.call(element, event); // If it returns true, then execute the JSF-generated onclick.
        }
    });
});

function yourCustomFunction() {
    // ...
}

关于javascript - 带有 jsf 组件的不显眼的 javascript ...怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269641/

相关文章:

jquery - 媒体宽度> 768px 时显示隐藏 bootstrap 3 offcanvas 时的 CSS3 动画

javascript - 找不到 Electron 应用程序

javascript - 动画 HTML 文本更改 jQuery

Javascript 在 WebView Activity 中不起作用

javascript - JQuery 获取 IFrame 中的父 URL :iframe and its parent are in Different domain

java - 将 JQuery 缓存到 Web 浏览器中

java - bean 属性上的 SEAM JSF Lazy Init 异常

java - JSF 托管 Bean 自动创建?

javascript - React Hook Form - 智能组件 - 当输入被包装在元素中时表单被破坏

javascript - JS 乘以数组中的最后一个子元素