我想實現一個TexBox,用戶只能輸入字母。當用戶輸入數字或無效字符時,必須在附近顯示錯誤消息。就像這樣:如何讓用戶只輸入字母,數字和其他字符
7
A
回答
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
您可以添加正則表達式做this
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;
}
你想爲這個網絡的解決方案? – Kushan 2012-01-30 10:33:13
Kushan,是的,我使用GWT – MyTitle 2012-01-30 11:39:32