0

我有一个要求,程序应该将输入到检票口文本字段的每个字符都转换为大写。当我们从模型中获取值时,它应该是一个大写的字符串。

大写行为.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|
我无法按顺序更改字符串中间的字符。

4

0 回答 0