Как я могу захватить повтор GWT TextBox KeyDown - PullRequest
0 голосов
/ 08 февраля 2020

GWT не имеет класса для текстового поля IPv4, поэтому мне пришлось создать объект, расширяющий TextBox. Мой объект будет обрабатывать ввод с клавиатуры, чтобы автоматически вставить '.' разделитель между октетами, проверка действительного октета, запрещение ввода без номера c и проверка действительного адреса IPv4. Объект также будет очищать недопустимые символы от события вставки. Таким образом, все выглядело хорошо, однако во время тестирования было обнаружено, что симуляция застрявшего ключа позволяет записывать слишком много допустимых символов и не проверяться на основе правил адреса IPv4. Вопрос в том ... есть ли способ обнаружить событие застрявшей клавиши в текстовом поле GWT?

TextBox tb = new TextBox();

tb.addKeyPressHandler(new KeyPressHandler() {
    @Override
    public void onKeyPress(KeyPressEvent event)
    {
        // Calls validation
    }
});

tb.addKeyUpHandler(new KeyUpHandler() {
    @Override
    public void onKeyUp(KeyUpEvent event)
    {
        // Calls validation
    }
});
tb.addValueChangeHandler(new ValueChangeHandler<String>() {
    @Override
    public void onValueChange(ValueChangeEvent<String> event)
    {
        // Calls validation
    }
});

Так, если число 3 удерживается, то отображаются 16 3 (16 - предел строки). Принимая во внимание, что если номер 3 будет нажат более 7 раз, код выдаст «33,33,33,33», запретив 9-е и т. Д. Нажатия клавиш.

1 Ответ

0 голосов
/ 08 февраля 2020

Решено. Просто скопируйте KeyUp как KeyDown

...