commandButton
如果字段required=true
未填充值,禁用 a 的最佳方法是什么?
该按钮应在第一页加载时禁用,并且仅在所有必填字段都是具有值的字段时启用。
通过最好的方法,我的意思是没有 javascript 和最小代码:-)
此外,如果仅在所有评估为 truecommandButton
时才启用,那就太好了。validators
使用 PF 3.2
编辑
- 我的意思是最好的方法,它应该只在客户端进行评估
commandButton
如果字段required=true
未填充值,禁用 a 的最佳方法是什么?
该按钮应在第一页加载时禁用,并且仅在所有必填字段都是具有值的字段时启用。
通过最好的方法,我的意思是没有 javascript 和最小代码:-)
此外,如果仅在所有评估为 truecommandButton
时才启用,那就太好了。validators
使用 PF 3.2
编辑
这是不可能的,原因有二。
required
属性只存储在服务器端,客户端不知道默认需要哪些字段。如果不使用required
,您可以在客户端实现此目的,如下所示。validateContent
应该包含禁用commandButton
.
<h:inputText value="#{bean.text}" >
<pe:javascript event="keyup" execute="validateContent();"/>
</h:inputText>
如果去服务器没问题,那么你可以这样做:
<h:inputText id="test1" value="#{bean.text}" required="true" immediate="true">
<f:ajax listener="#{bean.makeDisable()}" render="test2" />
</h:inputText>
</h:commandButton id="test2" value="commandButton1" disabled="#{bean.disable}" />
在 bean 中:
private String text;
private boolean disable;
// setter & getter of text
public boolean isDisable()
{
return disable;
}
public void makeDisable(AjaxBehaviorEvent event)
{
if(text == null || text.equals(""))
this.disable=true;
else
this.disable=false;
}
这基本上将commandButton
在初始加载时加载禁用,并且只有在文本字段中输入任何值时才会启用。
这是可能的,但我几乎不会称其为“最佳方式”。
您需要为ajax
每个字段上的更改事件提供一个标签。每个字段都必须immediate
跳过初始验证,并且process
需要设置为@this
.
在事件侦听器中,您可以检查每个必填字段是否存在值,如果存在,则设置一个布尔字段来确定 commandButton 是否被禁用。
这些ajax
标签将需要render
@this
以及commandButton
.
但即便如此,实际上还是有很多 Javascript 代码在运行,没有一个是你必须直接编写的。