Как разрешить пользователю вводить только буквы, без цифр и других символов - PullRequest
7 голосов
/ 30 января 2012

Я хочу реализовать TexBox, где пользователь может вводить только буквы.Когда пользователь вводит цифры или недопустимые символы, рядом должно отображаться сообщение об ошибке.Как это:

enter image description here

Ответы [ 4 ]

9 голосов
/ 30 января 2012

Вы можете использовать Character.isLetter(char) в KeyUpHandler TextBox:

  textBox.addKeyUpHandler(new KeyUpHandler() {
            public void onKeyUp(KeyUpEvent event) {
                if (!Character.isLetter(event.getNativeKeyCode())) {
                    ((TextBox)event.getSource()).cancelKey();
                    customPopup.showRelativeTo(textBox);// your styled PopupPanel
                }
            }
        });

Но, Character.isLetter(char) работает с ASCII, если вы хотите больше увидеть, вы можете сделать это примерно так:

/**
     * A better implementation of isLetter -- the default GWT version doesn't 
     * support non-English characters.
     *
     * @param c the character to check
     * @return whether the character represents and alphabetic symbol.
     */
    public static boolean isLetter(char c) {
        int val = (int) c;

        return inRange(val, 65, 90) || inRange(val, 97, 122) || inRange(val, 192, 687) || inRange(val, 900, 1159) ||
        inRange(val, 1162, 1315) || inRange(val, 1329, 1366) || inRange(val, 1377, 1415) || inRange(val, 1425, 1610);
    }

    /**
     * Checks if an int value is in a range.
     * @param value value to check
     * @param min min value
     * @param max max value
     * @return whether value is in the range, inclusively.
     */
    public static boolean inRange(int value, int min, int max) {
        return (value <= max) & (value >= min);
    }

См. Это: http://code.google.com/p/google-web-toolkit/issues/detail?id=1983

1 голос
/ 30 января 2012

Вы можете добавить регулярное выражение, чтобы сделать this

1 голос
/ 30 января 2012

Javascript для разрешения буквенных символов

function AllowAlphabet(e)
{

   keyEntry = !isIE ? e.which : event.keyCode;
   if (((keyEntry >= '65') && (keyEntry <= '90')) || ((keyEntry >= '97') && (keyEntry <= 
   '122')) || (keyEntry == '46') || (keyEntry == '32') || keyEntry == '45')
   return true;
}
1 голос
/ 30 января 2012

Вы можете написать некоторый проверочный код в событии keyTyped, чтобы проверить, какая была введена последняя буква. Был ли это номер или нет. Если нет, то показать сообщение об ошибке.

Попробуйте рассмотреть KeyLister метод: keyTyped()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...