0

ウィケット フィールドの検証にフィールド コンテンツの再フォーマットを含めたいと思います。

時間入力フィールドの例:

ユーザー入力: 1459 -> 検証は OK -> フィールドには再フォーマットされた値が表示されます: 14:59 (コロンが中央にある)

助けてくれてありがとう、

ウリ

public class PhoneValidatorWrapper implements IValidator<String>, Serializable
{

    public PhoneValidatorWrapper()
    {
    }

    @Override
    public void validate(IValidatable<String> validatable)
    {
        // validation goes here ...
            // writing pretty print back to model
            validatable.getModel().setObject("hello world");            
    }
}

それでも表示される値は変更されません

4

2 に答える 2

0

私はついにそれを行う方法を見つけました:それはバリデーターと動作を組み合わせることによって機能します:

public class PhoneValidatorWrapper extends Behavior implements IValidator<String>, Serializable
{
    String prettyFormattedValue = null;

    public PhoneValidatorWrapper()
    {
    }

    @Override
    public void validate(IValidatable<String> validatable)
    {
        // validation goes here ...
        prettyFormattedValue = internalValidationResult.getPrettyValue();
    }

    @Override
    public void beforeRender(Component component)
    {
        super.beforeRender(component);
        IModel defaultModel = component.getDefaultModel();
        defaultModel.setObject(prettyFormattedValue);
    }
}
于 2013-06-12T20:45:37.457 に答える
0

クライアント側でユーザー入力を再フォーマットする JavaScript を使用することをお勧めします。次の jQuery プラグインはおそらくその仕事をすることができます:

http://digitalbush.com/projects/masked-input-plugin/#demo

参照: ユーザーがフォーマットされた日付を wicket に入力する方法?

于 2013-06-12T19:35:41.117 に答える