我有一个要求,程序应该将输入到检票口文本字段的每个字符都转换为大写。当我们从模型中获取值时,它应该是一个大写的字符串。
大写行为.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|
我无法按顺序更改字符串中间的字符。