カスタムバリデーターが必要です。あらかじめ定義された値を確認するものを作成します。一致するものが見つからない場合は、数値形式を確認してください。基本的な例:あなたが入力フィールドを見つけ、それにkeypress
リスナーをバインドするためにjQueryを使用することができます別の方法として
<p:selectOneMenu editable="true" ...>
...
<f:validator validatorId="myValidator" />
</p:selectOneMenu>
:
@FacesValidator("myValidator")
public class MyValidator implements Validator
{
private List<String> predefinedValues = Arrays.asList("my", "list");
@Override
public void validate(FacesContext context, UIComponent component, Object value)
throws ValidatorException
{
String valueStr = (String) value;
// Check if value is predefined
if (predefinedValues.contains(valueStr)) {
return;
}
// If not predefined, check number format
if (! valueStr.matches("^\\d+(\\.\\d\\d?)?$")) {
throw new ValidatorException(new FacesMessage("Value is invalid!"));
}
// Check number limits...
}
}
バリデータは、あなたのようXHTMLで使用することができます。たとえば、Jquery: filter input on keypressを参照してください。しかし、私はバリデーターをそのまま使用します。たとえば、テキストを貼り付けることができます。
も参照してください:
ありがとうございましたが、その私が望んでいないものを。私は既にバリデーターを持っています。私が達成したいのは、入力することさえできないということです。inputmaskのようなものです。 – Smolda
私は答えに代わるものとしてこれを追加しました。 –
ああ...それは意味をなさない。 :) – Smolda