Ccna final exam - java, php, javascript, ios, cshap all in one. This is a collaboratively edited question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.
Monday, January 30, 2012
How to allow user to enter only the letters, no numbers and other characters
I want to implement TexBox where user can input only letters. When user enter numbers or invalid characters, near TextBox must appear Error message. Like this:
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;
/** * 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
You can use Character.isLetter(char) on TextBox's KeyUpHandler:
ReplyDeletetextBox.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
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.
ReplyDeleteTry considering KeyLister method : keyTyped()
You may add regex to do this
ReplyDeleteJavascript to allow Alphabetical characters
ReplyDeletefunction 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;
}