我的页面上有一些jsf“commandLinks”。对于这些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/