Topic: window.event & window.event.which (Page 1 of 1) |
|
---|---|
Maniac (V) Mad Scientist From: Jacks raging bile duct.... |
posted 04-02-2007 16:09
I found some scripting here for restricting keyboard input for form data. The only issue I've encountered so far is that it was written for IE and doesn't work right in Firefox as Firefox doesn't support window.event. The question I have is how do I modify the script at the window.event area to accomodate Firefox? Thanks in advance for any and all help given. code: var keybYN = new keybEdit('yn','Valid values are \'Y\' or \'N\'.'); var keybNumeric = new keybEdit('01234567890','Numeric input only.'); var keybAlpha = new keybEdit('abcdefghijklmnopqurstuvwxy ','Alpha input only.'); var keybAlphaNumeric = new keybEdit('abcdefghijklmnopqurstuvwxy01234567890 ','Alpha-numeric input only.'); var keybDecimal = new keybEdit('01234567890.','Decimal input only.'); var keybDate = new keybEdit('01234567890/','Date input only');; var keybYNNM = new keybEdit('yn'); var keybNumericNM = new keybEdit('01234567890'); var keybAlphaNM = new keybEdit('abcdefghijklmnopqurstuvwxy'); var keybAlphaNumericNM = new keybEdit('abcdefghijklmnopqurstuvwxy01234567890'); var keybDecimalNM = new keybEdit('01234567890.'); var keybDateNM = new keybEdit('01234567890/');; function keybEdit(strValid, strMsg) { /* Function: keybEdit Creation Date: October 11, 2001 Programmer: Edmond Woychowsky Purpose: The purpose of this function is to be a constructor for the keybEdit object. keybEdit objects are used by the function editKeyBoard to determine which keystrokes are valid for form objects. In addition, if an error occurs, they provide the error message. Please note that the strValid is converted to both upper and lower case by this constructor. Also, that the error message is prefixed with 'Error:'. The properties for this object are the following: valid = Valid input characters message = Error message The methods for this object are the following: getValid() = Returns a string containing valid characters. getMessage()= Returns a string containing the error message. Update Date: Programmer: Description: */ // Variables var reWork = new RegExp('[a-z]','gi'); // Regular expression\ // Properties if(reWork.test(strValid)) this.valid = strValid.toLowerCase() + strValid.toUpperCase(); else this.valid = strValid; if((strMsg == null) || (typeof(strMsg) == 'undefined')) this.message = ''; else this.message = strMsg; // Methods this.getValid = keybEditGetValid; this.getMessage = keybEditGetMessage; function keybEditGetValid() { /* Function: keybEdit Creation Date: October 11, 2001 Programmer: Edmond Woychowsky Purpose: The purpose of this function act as the getValid method for the keybEdit object. Please note that most of the following logic is for handling numeric keypad input. Update Date: Programmer: Description: */ return this.valid.toString(); } function keybEditGetMessage() { /* Function: keybEdit Creation Date: October 11, 2001 Programmer: Edmond Woychowsky Purpose: The purpose of this function act as the getMessage method for the keybEdit object. Update Date: Programmer: Description: */ return this.message; } } function editKeyBoard(objForm, objKeyb) { /* Function: editKeyBoard Creation Date: October 11, 2001 Programmer: Edmond Woychowsky Purpose: The purpose of this function is to edit edit keyboard input to determine if the keystrokes are valid. Update Date: Programmer: Description: */ strWork = objKeyb.getValid(); strMsg = ''; // Error message blnValidChar = false; // Valid character flag // Part 1: Validate input if(!blnValidChar) for(i=0;i < strWork.length;i++) if(window.event.keyCode == strWork.charCodeAt(i)) { blnValidChar = true; break; } // Part 2: Build error message if(!blnValidChar) { if(objKeyb.getMessage().toString().length != 0) alert('Error: ' + objKeyb.getMessage()); window.event.returnValue = false; // Clear invalid character objForm.focus(); // Set focus } } function setEvents() { //document.all.txtYN.onkeypress = new Function('editKeyBoard(this,keybYN)'); //document.all.txtNumeric.onkeypress = new Function('editKeyBoard(this,keybNumeric)'); //document.all.txtAlpha.onkeypress = new Function('editKeyBoard(this,keybAlpha)'); document.getElementById('name_first').onkeypress = new Function('editKeyBoard(this,keybAlpha)'); //document.all.txtAlphaNumeric.onkeypress = new Function('editKeyBoard(this,keybAlphaNumeric)'); //document.all.txtDecimal.onkeypress = new Function('editKeyBoard(this,keybDecimal)'); //document.all.txtDate.onkeypress = new Function('editKeyBoard(this,keybDate)'); }
|
Neurotic (0) Inmate Newly admitted From: |
posted 04-11-2007 19:42
I made some changes, try this: |
Obsessive-Compulsive (I) Inmate From: Sunderland |
posted 05-31-2007 12:47
Hi Edmond, code: var intCode = evt.charCode == undefined ? evt.keyCode : evt.charCode;
code: var intCode = (evt.charCode) ? evt.charCode : evt.keyCode;
code: case(intCode == 37): case(intCode == 39):
|