2012-01-30 54 views

回答

8

您可以在文本框的KeyUpHandler使用Character.isLetter(char)

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

+0

它與UTF-8一起工作?我需要驗證俄羅斯符號 – MyTitle 2012-01-30 17:30:40

1

您可以在活動的keyTyped寫一些驗證代碼檢查,究竟是什麼類型的最後一個字母。它是否是一個數字?如果沒有,則顯示錯誤消息。

儘量考慮KeyLister方法:keyTyped()

1

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; 
}