2012-01-30 5 views

Odpowiedz

8

Można użyć Character.isLetter(char) na polu tekstowym za 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 
       } 
      } 
     }); 

Ale Character.isLetter(char) pracuje z ASCII, jeśli chcesz zobaczyć więcej można zrobić to coś takiego:

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

zobaczyć to: http://code.google.com/p/google-web-toolkit/issues/detail?id=1983

+0

To działa z UTF-8? potrzebuję sprawdzania poprawności rosyjskich symboli – MyTitle

1

można napisać kod weryfikacyjny na razie keyTyped, by sprawdzić, jaki był ostatni list wpisane. Czy to numer, czy nie. Jeśli nie, pokaż komunikat o błędzie.

Spróbuj rozważa KeyLister metody: keyTyped()

1

Javascript aby umożliwić znaków alfabetycznych

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; 
} 
Powiązane problemy