这有两个原因是不可能的。
- 对于客户端验证,您绝对需要javascript。
- 组件的
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}" />
而且在豆:
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
禁用初始加载和它只会在输入文本字段中的任何值时启用。
客户端没有JavaScript? – Ravi 2012-08-03 16:42:35
使用javascript,这将易于维护和轻松为您的客户端(iexplore,firefox,chrome等Internet浏览器)和服务器(Web应用程序服务器)。每个输入组件上的每个“onchange”都会有很多的ajax调用,它会变得非常沉重。如果你不想使用JavaScript,因为你不知道,学习一些,如果你不想要一个非功能性的需求限制,向负责人解释为什么ajax实现将是一个非常糟糕的方法,JavaScript会成为你的朋友。 – 2012-08-03 21:11:03