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

Css 在PrimeFaces向导中禁用/启用下一步和后退按钮,css,jsf,primefaces,Css,Jsf,Primefaces,我不熟悉JSF Primefaces 我正在使用Primeface向导,我需要使用java禁用/启用向导中的“下一步/上一步”按钮。我尝试了以下代码,但失败了 对于“下一步”按钮禁用: PrimeFaces.current().executeScript(“PF(“+clientId+”)).nextNav.css('disabled','true');”) PrimeFaces.current().executeScript(“PF(“+clientId+”)).nextNav.css('di

我不熟悉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 button元素的一个属性,如“实际值无关紧要,仅此名称属性的存在就使其被禁用。亨西,你需要通过

PF('" + clientId + "').nextNav.attr('disabled', 'disabled')
但这只会在技术上使它失效。因此,您还需要添加适当的外观:

PF('" + clientId + "').nextNav.toggleClass('ui-state-default')
PF('" + clientId + "').nextNav.toggleClass('ui-state-disabled')
我个人会将所有这些添加到javascript函数(
函数disableNext(…){…}
)中,并通过传递clientId从java中添加此函数(您甚至可以使其更通用,并创建一个
toggleNext

)禁用按钮不是css的事情。它是html button元素的一个属性,如“实际值无关紧要,仅此名称属性的存在就使其被禁用。亨西,你需要通过

PF('" + clientId + "').nextNav.attr('disabled', 'disabled')
但这只会在技术上使它失效。因此,您还需要添加适当的外观:

PF('" + clientId + "').nextNav.toggleClass('ui-state-default')
PF('" + clientId + "').nextNav.toggleClass('ui-state-disabled')
我个人会将所有这些添加到javascript函数(
函数disableNext(…){…}
)中,并通过传递clientId从java中添加此函数(您甚至可以使其更通用,并创建一个
toggleNext

)

您已经看到问题了吗?这是否回答了您的问题?禁用不是css的事情,它是一个属性。如果您尝试使用纯html在应用的css选择器中设置一个
禁用:禁用
,它将不会起任何作用。…@fuggerjaki61:请阅读最后的粗体行…@Melloware:请阅读最后的粗体行您已经看到的问题ID这是否回答了您的问题?禁用不是css的事情,它是一个属性。如果您尝试使用纯html在应用的css选择器中设置一个
禁用:禁用
,它将不会起任何作用。…@fuggerjaki61:请阅读最后的粗体行…@Melloware:请阅读最后的粗体行使用按钮的widgetvar不可能吗?会是easier@BugsForBreakfast:如果此按钮将有一个小部件,它将。但它不是,因为它是向导小部件中的一个按钮。当然,您可以通过扩展向导的js将函数添加到向导中,并将disableText/enableNext/disablePrev/enableprov放在其中。那将是非常通用的。这甚至可以发布为PrimeFaces的pull请求。请随意尝试(这是一个很好且不太复杂的练习)注意,
PF(Xxx)
使用小部件变量名,而不是
clientId
,请参阅。如果您想使用
clientId
,请使用
PrimeFaces.getWidgetById(clientId)
@JasperdeVries:同意,但我复制了至少css工作的问题中的代码,因此我“假设”OP通过了widgetvar而不是完整的客户端id(但假设…母亲…)。感谢大家提供了宝贵的信息@Kukeltje感谢您的解决方案,我尝试了attr,如前所述,它正在工作。对于禁用:
PF(“+clientId+”).nextNav.attr('disabled','disabled')
对于启用:
PF(“+clientId+”).nextNav.removeAttr('disabled')
同样,它也可以应用于向导中的“后退”按钮。按钮的widgetvar不可能吗?会是easier@BugsForBreakfast:如果此按钮将有一个小部件,它将。但它不是,因为它是向导小部件中的一个按钮。当然,您可以通过扩展向导的js将函数添加到向导中,并将disableText/enableNext/disablePrev/enableprov放在其中。那将是非常通用的。这甚至可以发布为PrimeFaces的pull请求。请随意尝试(这是一个很好且不太复杂的练习)注意,
PF(Xxx)
使用小部件变量名,而不是
clientId
,请参阅。如果您想使用
clientId
,请使用
PrimeFaces.getWidgetById(clientId)
@JasperdeVries:同意,但我复制了至少css工作的问题中的代码,因此我“假设”OP通过了widgetvar而不是完整的客户端id(但假设…母亲…)。感谢大家提供了宝贵的信息@Kukeltje感谢您的解决方案,我尝试了attr,如前所述,它正在工作。对于禁用:
PF(“+clientId+”).nextNav.attr('disabled','disabled')
对于启用:
PF(“+clientId+”).nextNav.removeAttr('disabled')
同样,它也可以应用于向导中的后退按钮。