Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to allow user to enter only the letters, no numbers and other characters

Tags:

java

gwt

I want to implement a TexBox where the user can input only letters. When the user enter numbers or invalid characters, an error message must show near by. Like this:

enter image description here

like image 728
WelcomeTo Avatar asked Jan 30 '12 10:01

WelcomeTo


2 Answers

You can use Character.isLetter(char) on TextBox's KeyUpHandler:

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

But, Character.isLetter(char) works with ASCII, if you want more see you can do it something like that:

/**
     * 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);
    }

See this: http://code.google.com/p/google-web-toolkit/issues/detail?id=1983

like image 105
Jama A. Avatar answered Oct 09 '22 11:10

Jama A.


You can write some validation code on keyTyped event to check, what was the last letter typed. Was it a number or not. If not then show error message.

Try considering KeyLister method : keyTyped()

like image 35
gprathour Avatar answered Oct 09 '22 11:10

gprathour