1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
//==============================================================================
// KEY CODE (CHARACTER) INPUT FILTER
//------------------------------------------------------------------------------
// Use this function in the "onKeyPress" event to call this function for
// each key press by the user
//==============================================================================
function fwkFilter(oEvent, oField, sType)
{
if ( oEvent == null )
{
alert ( "ERROR on fwkFilter() : No event parameter !" );
return ;
}
if ( oField == null )
{
alert ( "ERROR on fwkFilter() : No field parameter !" );
return ;
}
if ( sType == null ) return ;
//fwkSetFieldShallowCheckingStandardColor(oField);
var sOptionalChars = fwkGetOptionalChars(sType);
var sPureType = fwkGetPureType(sType);
var sPureTypeUC = sPureType.toUpperCase() ;
if ( sPureTypeUC == "ALPHAUC" ) return fwkAlphaFilter (oEvent, oField, sOptionalChars, "U" ) ;
else if ( sPureTypeUC == "ALPHALC" ) return fwkAlphaFilter (oEvent, oField, sOptionalChars, "L" ) ;
}
//------------------------------------------------------------------------
function fwkGetOptionalChars(sType)
{
if ( sType == null ) return "" ;
var i = sType.indexOf(":") ;
if ( i >= 0 )
{
return sType.substr(i+1) ;
}
return "";
}
//------------------------------------------------------------------------
function fwkGetPureType(sType)
{
if ( sType == null ) return "" ;
var i = sType.indexOf(":") ;
if ( i >= 0 )
{
return sType.substr(0, i) ;
}
return sType;
}
//------------------------------------------------------------------------
// Fonctions de filtrage des caractères saisis pour un champ ALPHABETIQUE PUR
//------------------------------------------------------------------------
function fwkAlphaFilter(oEvent, oField, sOpt, sUpperLower )
{
var iCar = fwkGetKeyCode(oEvent) ; // Caractère saisi
if ( iCar < 31 ) return true ;
var iFilteredChar = privateAlphaFilter(iCar, sOpt, sUpperLower ) ;
if ( iFilteredChar != 0 ) // Char OK
{
if ( iFilteredChar != iCar )
{
//--- Re-Set the Character (can be converted)
fwkSetKeyCode(oEvent, iFilteredChar )
}
return true ;
}
fwkInvalidChar(oField);
return false ;
}
//------------------------------------------------------------------------
function privateAlphaFilter(iCar, sOpt, sUpperLower )
{
//--- Lettres majuscules ( A-Z )
if ( iCar >= 65 && iCar <= 90 )
{
if ( sUpperLower == "L" ) // Lower Case
{
return iCar + 32; // Convert
}
return iCar ;
}
//--- Lettres minuscules ( a-z )
if ( iCar >= 97 && iCar <= 122 )
{
if ( sUpperLower == "U" ) // Upper Case
{
return iCar - 32; // Convert
}
return iCar ;
}
//--- Lettres accentuées ( à ä â ï î ñ Ä Â etc... )
if ( iCar >= 194 )
{
return iCar ;
}
//--- Caractère optionnel ?
var sCar = String.fromCharCode(iCar) ;
if ( sOpt.indexOf(sCar) >= 0 )
{
return iCar ;
}
//--- Dans tous les autres cas : Caractère refusé
return 0 ;
}
//------------------------------------------------------------------------
function fwkGetKeyCode(oEvent)
{
if ( window.event )
{
//--- Internet Explorer
window.status = "I.E. : event.keyCode = " + oEvent.keyCode + " / window.event.keyCode = " + window.event.keyCode ;
return window.event.keyCode ;
}
else
{
//--- Mozilla / Firefox
if ( oEvent.keyCode ) // Ctrl Key ( Backspace, Home, Arrows, ... )
{
//window.status = "Mozilla/Firefox : keyCode = " + oEvent.keyCode ;
return 0 ;
}
else if ( oEvent.which ) // Character
{
//window.status = "Mozilla/Firefox : which = " + oEvent.which + " / charCode = " + oEvent.charCode ;
return oEvent.which ;
}
return 0;
}
}
//------------------------------------------------------------------------
function fwkSetKeyCode(oEvent, iNewKeyCode )
{
if ( window.event ) //--- Internet Explorer
{
window.status = "I.E. : initial keyCode = " + window.event.keyCode + " / new keyCode = " + iNewKeyCode ;
window.event.keyCode = iNewKeyCode ;
}
else if ( oEvent.initKeyEvent ) //--- Mozilla / Firefox
{
oEvent.initKeyEvent('keypress', true, true, window, false, false, false, false, 0, iNewKeyCode );
}
}
//------------------------------------------------------------------------
var VG_fwkInvalidCharErrorColor = "red";
var VG_fwkFieldOnError = null ; // Variable Globale pour le timer
function fwkInvalidChar(oField)
{
VG_fwkFieldOnError = oField ;
if ( oField.style.backgroundColor != VG_fwkInvalidCharErrorColor ) // Pour éviter les pb de frappe clavier très rapide
{
var sInitialBgColor = oField.style.backgroundColor ;
//alert("initial BG-Color =" + sInitialBgColor );
//VG_fwkFieldOnError.style.backgroundColor='red' ;
VG_fwkFieldOnError.style.backgroundColor=VG_fwkInvalidCharErrorColor ;
//window.setTimeout("VG_fwkFieldOnError.style.backgroundColor='white';", 50);
window.setTimeout("VG_fwkFieldOnError.style.backgroundColor='" + sInitialBgColor + "';", 50);
}
} |
Partager