BUG 6284 Changing mask validator direction for text fields.
This commit is contained in:
@@ -303,14 +303,19 @@ function G_DropDown( form, element, name )
|
|||||||
}
|
}
|
||||||
G_DropDown.prototype=new G_Field();
|
G_DropDown.prototype=new G_Field();
|
||||||
|
|
||||||
function G_Text( form, element, name )
|
function G_Text( form, element, name, type )
|
||||||
{
|
{
|
||||||
var me=this;
|
var me=this;
|
||||||
|
var mType = 'text';
|
||||||
this.parent = G_Field;
|
this.parent = G_Field;
|
||||||
this.parent( form, element, name );
|
this.parent( form, element, name );
|
||||||
if (element) {
|
if (element) {
|
||||||
this.prev = element.value;
|
this.prev = element.value;
|
||||||
}
|
}
|
||||||
|
if (type){
|
||||||
|
//alert('Type: ' + type);
|
||||||
|
mType = type;
|
||||||
|
}
|
||||||
this.validate = 'Any';
|
this.validate = 'Any';
|
||||||
this.mask='';
|
this.mask='';
|
||||||
this.required=false;
|
this.required=false;
|
||||||
@@ -458,7 +463,11 @@ function G_Text( form, element, name )
|
|||||||
startPos++;
|
startPos++;
|
||||||
|
|
||||||
var newValue2;
|
var newValue2;
|
||||||
newValue2 = G.toMask(newValue, me.mask, startPos);
|
if (mType !== 'text'){
|
||||||
|
newValue2 = G.toMask(newValue, me.mask, startPos);
|
||||||
|
}else{
|
||||||
|
newValue2 = G.toMask(newValue, me.mask, startPos, 'normal');
|
||||||
|
}
|
||||||
me.element.value = newValue2.result;
|
me.element.value = newValue2.result;
|
||||||
me.setSelectionRange(newValue2.cursor, newValue2.cursor);
|
me.setSelectionRange(newValue2.cursor, newValue2.cursor);
|
||||||
|
|
||||||
@@ -782,7 +791,7 @@ function G_Percentage( form, element, name )
|
|||||||
{
|
{
|
||||||
var me=this;
|
var me=this;
|
||||||
this.parent = G_Text;
|
this.parent = G_Text;
|
||||||
this.parent( form, element, name );
|
this.parent( form, element, name, 'percentage');
|
||||||
this.validate = 'Int';
|
this.validate = 'Int';
|
||||||
this.mask= '###.##';
|
this.mask= '###.##';
|
||||||
}
|
}
|
||||||
@@ -792,7 +801,7 @@ function G_Currency( form, element, name )
|
|||||||
{
|
{
|
||||||
var me=this;
|
var me=this;
|
||||||
this.parent = G_Text;
|
this.parent = G_Text;
|
||||||
this.parent( form, element, name );
|
this.parent( form, element, name, 'currency');
|
||||||
this.validate = 'Int';
|
this.validate = 'Int';
|
||||||
this.mask= '_###,###,###,###,###;###,###,###,###,###.00';
|
this.mask= '_###,###,###,###,###;###,###,###,###,###.00';
|
||||||
}
|
}
|
||||||
@@ -1102,22 +1111,46 @@ function G()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Apply a mask to a number
|
//Apply a mask to a number
|
||||||
function _ApplyMask(num, mask, cursor){
|
function _ApplyMask(num, mask, cursor, dir){
|
||||||
var __DECIMAL_SEP = '.';
|
if (dir){
|
||||||
var osize = num.length;
|
var osize = num.length;
|
||||||
num = _checkNumber(num, mask);
|
_out = '';
|
||||||
num = _getOnlyNumbers(num,__DECIMAL_SEP);
|
num = _checkNumber(num, mask);
|
||||||
if (num.length == 0) return {result: '', cursor: 0};
|
num = _getOnlyNumbers(num,'');
|
||||||
var iNum = invertir(num);
|
if (num.length == 0) return {result: '', cursor: 0};
|
||||||
var iMask = invertir(mask);
|
iNum = num;
|
||||||
if (iMask.indexOf('0'+__DECIMAL_SEP)> 0){ //Mask has .0 and will applied complete
|
iMask = mask;
|
||||||
aMask = iMask;
|
eMask = iMask.split('');
|
||||||
iNum = _getOnlyNumbers(iNum,'*');
|
eNum = iNum.split('');
|
||||||
aNum = iNum;
|
|
||||||
eMask = aMask.split('');
|
|
||||||
eNum = aNum.split('');
|
|
||||||
_cout = '';
|
|
||||||
for (e=0; e < eMask.length; e++){
|
for (e=0; e < eMask.length; e++){
|
||||||
|
switch(eMask[e]){
|
||||||
|
case '#': case '0':
|
||||||
|
if (eNum.length > 0){
|
||||||
|
key = eNum.shift();
|
||||||
|
_out += key;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
_out += eMask[e];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
var __DECIMAL_SEP = '.';
|
||||||
|
var osize = num.length;
|
||||||
|
num = _checkNumber(num, mask);
|
||||||
|
num = _getOnlyNumbers(num,__DECIMAL_SEP);
|
||||||
|
if (num.length == 0) return {result: '', cursor: 0};
|
||||||
|
var iNum = invertir(num);
|
||||||
|
var iMask = invertir(mask);
|
||||||
|
if (iMask.indexOf('0'+__DECIMAL_SEP)> 0){ //Mask has .0 and will applied complete
|
||||||
|
aMask = iMask;
|
||||||
|
iNum = _getOnlyNumbers(iNum,'*');
|
||||||
|
aNum = iNum;
|
||||||
|
eMask = aMask.split('');
|
||||||
|
eNum = aNum.split('');
|
||||||
|
_cout = '';
|
||||||
|
for (e=0; e < eMask.length; e++){
|
||||||
switch(eMask[e]){
|
switch(eMask[e]){
|
||||||
case '#': case '0': case 'd': case 'm': case 'y':
|
case '#': case '0': case 'd': case 'm': case 'y':
|
||||||
if (eNum.length > 0){
|
if (eNum.length > 0){
|
||||||
@@ -1136,86 +1169,87 @@ function G()
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
_cout += eMask[e];
|
_cout += eMask[e];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_out = _cout;
|
_out = _cout;
|
||||||
}else{
|
}else{
|
||||||
sw_d = false;
|
sw_d = false;
|
||||||
aMask = iMask.split(__DECIMAL_SEP);
|
aMask = iMask.split(__DECIMAL_SEP);
|
||||||
aNum = iNum.split(__DECIMAL_SEP);
|
aNum = iNum.split(__DECIMAL_SEP);
|
||||||
if (aMask.length==1){
|
if (aMask.length==1){
|
||||||
dMask = '';
|
dMask = '';
|
||||||
cMask = aMask[0];
|
cMask = aMask[0];
|
||||||
}else{
|
}else{
|
||||||
dMask = aMask[0];
|
dMask = aMask[0];
|
||||||
cMask = aMask[1];
|
cMask = aMask[1];
|
||||||
}
|
}
|
||||||
if (aNum.length == 1){
|
if (aNum.length == 1){
|
||||||
dNum = '';
|
dNum = '';
|
||||||
cNum = aNum[0];
|
cNum = aNum[0];
|
||||||
}else{
|
}else{
|
||||||
sw_d = true;
|
sw_d = true;
|
||||||
dNum = aNum[0];
|
dNum = aNum[0];
|
||||||
cNum = aNum[1];
|
cNum = aNum[1];
|
||||||
}
|
}
|
||||||
_dout = '';
|
_dout = '';
|
||||||
|
|
||||||
pMask = dMask.split('');
|
pMask = dMask.split('');
|
||||||
pNum = dNum.split('');
|
pNum = dNum.split('');
|
||||||
for (p=0; p < pMask.length; p++){
|
for (p=0; p < pMask.length; p++){
|
||||||
switch(pMask[p]){
|
switch(pMask[p]){
|
||||||
case '#': case '0':
|
case '#': case '0':
|
||||||
if (pNum.length > 0){
|
if (pNum.length > 0){
|
||||||
key = pNum.shift();
|
key = pNum.shift();
|
||||||
_dout += key;
|
_dout += key;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ',': case '.':
|
case ',': case '.':
|
||||||
if (pMask[p] != __DECIMAL_SEP){
|
if (pMask[p] != __DECIMAL_SEP){
|
||||||
if (pNum.length > 0){
|
if (pNum.length > 0){
|
||||||
_dout += pMask[p];
|
_dout += pMask[p];
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
_dout += pMask[p];
|
_dout += pMask[p];
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_cout = '';
|
|
||||||
sw_c = false;
|
|
||||||
pMask = cMask.split('');
|
|
||||||
pNum = cNum.split('');
|
|
||||||
for (p=0; p < pMask.length; p++){
|
|
||||||
switch(pMask[p]){
|
|
||||||
case '#': case '0': case 'd': case 'm': case 'y':
|
|
||||||
if (pNum.length > 0){
|
|
||||||
key = pNum.shift();
|
|
||||||
_cout += key;
|
|
||||||
sw_c = true;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ',': case '.':
|
}
|
||||||
if (pMask[p] != __DECIMAL_SEP){
|
}
|
||||||
if (pNum.length > 0){
|
_cout = '';
|
||||||
_cout += pMask[p];
|
sw_c = false;
|
||||||
}
|
pMask = cMask.split('');
|
||||||
}
|
pNum = cNum.split('');
|
||||||
break;
|
for (p=0; p < pMask.length; p++){
|
||||||
default:
|
switch(pMask[p]){
|
||||||
_cout += pMask[p];
|
case '#': case '0': case 'd': case 'm': case 'y':
|
||||||
|
if (pNum.length > 0){
|
||||||
|
key = pNum.shift();
|
||||||
|
_cout += key;
|
||||||
|
sw_c = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ',': case '.':
|
||||||
|
if (pMask[p] != __DECIMAL_SEP){
|
||||||
|
if (pNum.length > 0){
|
||||||
|
_cout += pMask[p];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
_cout += pMask[p];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (sw_c && sw_d){
|
||||||
|
_out = _dout + __DECIMAL_SEP + _cout;
|
||||||
|
}else{
|
||||||
|
_out = _dout + _cout;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sw_c && sw_d){
|
_out = invertir(_out);
|
||||||
_out = _dout + __DECIMAL_SEP + _cout;
|
|
||||||
}else{
|
|
||||||
_out = _dout + _cout;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_out = invertir(_out);
|
|
||||||
if (_out.length > osize){
|
if (_out.length > osize){
|
||||||
cursor = cursor + (_out.length - osize);
|
cursor = cursor + (_out.length - osize);
|
||||||
}
|
}
|
||||||
@@ -1226,7 +1260,7 @@ function G()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Manage Multiple Mask and Integer/Real Number restrictions
|
//Manage Multiple Mask and Integer/Real Number restrictions
|
||||||
this.toMask = function(num, mask, cursor){
|
this.toMask = function(num, mask, cursor, direction){
|
||||||
if (mask==='') return {
|
if (mask==='') return {
|
||||||
'result': new String(num),
|
'result': new String(num),
|
||||||
'cursor': cursor
|
'cursor': cursor
|
||||||
@@ -1235,7 +1269,7 @@ function G()
|
|||||||
var result = [];
|
var result = [];
|
||||||
var subMasks=mask.split(';');
|
var subMasks=mask.split(';');
|
||||||
for(var r=0; r<subMasks.length; r++) {
|
for(var r=0; r<subMasks.length; r++) {
|
||||||
result[r]=_ApplyMask(num, subMasks[r], cursor);
|
result[r]=_ApplyMask(num, subMasks[r], cursor, direction);
|
||||||
}
|
}
|
||||||
var betterResult=0;
|
var betterResult=0;
|
||||||
for(r=1; r<subMasks.length; r++) {
|
for(r=1; r<subMasks.length; r++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user