【问题标题】:Unobtrusive javascript with jsf components ... how?带有 jsf 组件的不显眼的 javascript ......怎么样?
【发布时间】:2012-05-03 10:06:17
【问题描述】:

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

因为它是一个commandLink,它会创建html锚标签,并附加一些jsf JavaScript用于表单提交。当我直接在 onclick 属性中编写 JavaScript 时,jsf 会在插入自己的 JavaScript 时处理该 JavaScript。但是当我通过 jQuery 附加相同的事件处理程序时,它不会在执行事件处理程序之前识别并提交表单。

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

【问题讨论】:

    标签: javascript jquery jsf jquery-events unobtrusive-javascript


    【解决方案1】:

    您需要让您的 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() {
        // ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 2011-05-16
      • 2013-04-05
      • 1970-01-01
      • 2011-06-10
      • 2014-09-22
      相关资源
      最近更新 更多