私には要件があります。プログラムは、改札テキストフィールドに入力されたすべての文字を大文字に変換する必要があります。モデルから値を取得するときは、大文字の文字列である必要があります。
UpperCaseBehavior.java
import org.apache.wicket.Component;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.model.Model;
public class UpperCaseBehavior extends AttributeAppender {'
private static final long serialVersionUID = 1L;
public UpperCaseBehavior() {
super("style", new Model<String>("text-transform: uppercase"), ";");
}
@Override
public void bind(Component component) {
super.bind(component);
component.add(new AttributeAppender("onkeyup", new Model<String>(
"this.value = this.value.toUpperCase()"), ";"));
}
}
**adding upper case behaviour to textfield**<br/>
TextField<String> comp= new TextField<String>("chitMasterId",
new PropertyModel<String>(this, "id"));
comp.add(new UpperCaseBehavior());
上記のコードは、文字を順番に入力すると正常に機能します。'|'と仮定します カーソルとして。
例:ABCDEF |
カーサーを文字列の中央(どこかで終わりではない)に持ってくると、
例:ABC | DEF
文字を入力するとすぐに、文字は大文字に変換され、カーサーは文字列の最後に移動します。
例:ABCGDEF |
文字列の途中の文字を順番に変更できません。