禁用/启用 PrimeFaces 向导中的下一步和后退按钮

Disable/ Enable for Next and Back button in PrimeFaces Wizard

我是 JSF Primefaces 新手

我正在使用 Primeface 向导,我需要使用 java 在向导中禁用/启用下一步/返回按钮。我尝试使用以下代码但失败了

对于下一步按钮禁用:

PrimeFaces.current().executeScript(" PF('" + clientId + "').nextNav.css('disabled', 'true');");

PrimeFaces.current().executeScript(" PF('" + clientId + "').nextNav.css('disabled', 'disabled');");

对于下一步按钮启用:

PrimeFaces.current().executeScript(" PF('" + clientId + "').nextNav.css('disabled', 'false');");

PrimeFaces.current().executeScript(" PF('" + clientId + "').nextNav.css('disabled', 'none');");

但是当我尝试使用可见性时它起作用了

隐藏下一步按钮: PrimeFaces.current().executeScript(" PF('" + clientId + "').nextNav.css('visibility', 'hidden');");

下一步按钮显示: PrimeFaces.current().executeScript(" PF('" + clientId + "').nextNav.css('visibility', 'visible');");

问题:如何使用 Java 片段启用/禁用向导中的下一步/返回按钮? (需要禁用而不是隐藏按钮)

禁用按钮不是 css 的事。它是 html 按钮元素的一个属性,例如 ` 实际值无关紧要,仅存在具有此名称的属性就会禁用它。因此你需要通过

设置它
PF('" + clientId + "').nextNav.attr('disabled', 'disabled')

但这只会在技术上禁用它。所以你还需要添加适当的外观:

PF('" + clientId + "').nextNav.toggleClass('ui-state-default')
PF('" + clientId + "').nextNav.toggleClass('ui-state-disabled')

我会亲自将所有这些添加到 java 脚本函数 (function disableNext(...) {...}) 中,并仅通过传递 clientId 来自 java 的这个函数(您甚至可以使其更通用并且创建一个 toggleNext )