これは 2 つの理由で不可能です。
- クライアント側の検証には、間違いなく 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
、初期ロード時に無効をロードし、テキスト フィールドに値を入力したときにのみ有効になります。