我的页面上有一些'commandLinks‘jsf。对于这些commandLinks,有onClick事件。目前,我已经直接编写了onclick函数,作为这些commandLinks的onclick属性。
由于它是一个commandLink,它将创建html锚标记,并为表单提交而将一些jsf JavaScript附加到其中。当我直接用onclick属性编写我的JavaScript时,jsf将在插入它自己的JavaScript时处理这个JavaScript。但是,如果通过jQuery附加相同的事件处理程序,则在执行事件处理程序之前,它不会识别和提交表单。
这个问题有什么适当的解决办法吗?
发布于 2012-04-22 17:23:24
您需要让您的jQuery函数执行与JSF在封面下所做的相同的操作:将onclick属性中指定的自定义onclick函数封装到另一个函数中,该函数根据自定义onclick函数的结果执行提交表单的标准JSF任务。
下面是一个示例,假设所有这些链接元素都有一个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() {
// ...
}https://stackoverflow.com/questions/10269641
复制相似问题