BUG 9398 If exits more of one mask. don't work SOLVED

I add validate for used only firts mask
This commit is contained in:
Brayan Osmar Pereyra Suxo
2012-07-19 19:23:55 -04:00
parent 6df4a049ff
commit 4899ce1ff2

View File

@@ -932,6 +932,7 @@ function G_Text( form, element, name)
comma_sep = me.comma_separator;
comma_sep = (comma_sep == '') ? '.' : comma_sep;
aResults.push(me.replaceMask(newValue, newCursor, mask, type, comma_sep));
break;
}
minIndex = 0;
minValue = aResults[0].result;
@@ -1328,79 +1329,84 @@ function G_Text( form, element, name)
((me.validate == "Real") && (me.mType == 'text')) ) &&
(me.mask.indexOf('-')==-1) && (me.element.value != '') ) {
var separatorField = ",";
if (typeof(me.comma_separator) != 'undefined') {
separatorField = me.comma_separator;
} else {
txtRealMask = me.mask.split('');
p = txtRealMask.length - 1;
for ( ; p >= 0; p--) {
if (txtRealMask[p] != '#' && txtRealMask[p] != '%' && txtRealMask[p] != ' ') {
separatorField = txtRealMask[p];
break;
}
}
}
var partsMaskSep = me.mask.split(separatorField);
if (partsMaskSep.length == 2) {
var countDecimal = 0;
txtRealMask = me.mask.split('');
p = txtRealMask.length - 1;
for ( ; p >= 0; p--) {
if (txtRealMask[p] == '#') {
countDecimal++;
}
if (txtRealMask[p] == separatorField) {
break;
}
}
var decimalString = '';
var pluginAfter = '';
var pluginDecimal = '';
var numberSet = me.element.value.split(separatorField);
if (typeof(numberSet[1]) == 'undefined') {
var decimalSet = '';
var newInt = '';
var flagAfter = true;
var newPluginDecimal = '';
var decimalCade = numberSet[0].split('');
for (p = 0; p < decimalCade.length; p++) {
if ((!isNaN(parseFloat(decimalCade[p])) && isFinite(decimalCade[p])) || (decimalCade[p] == ',') || (decimalCade[p] == '.') ) {
newInt += decimalCade[p];
flagAfter = false;
} else {
if (flagAfter) {
pluginAfter += decimalCade[p];
} else {
newPluginDecimal += decimalCade[p];
}
masks = me.mask;
aMasks = masks.split(';');
for(m=0; m < aMasks.length; m++) {
var separatorField = ",";
if (typeof(me.comma_separator) != 'undefined') {
separatorField = me.comma_separator;
} else {
txtRealMask = aMasks[m].split('');
p = txtRealMask.length - 1;
for ( ; p >= 0; p--) {
if (txtRealMask[p] != '#' && txtRealMask[p] != '%' && txtRealMask[p] != ' ') {
separatorField = txtRealMask[p];
break;
}
}
numberSet[0] = newInt;
numberSet[1] = newPluginDecimal;
}
var decimalSet = numberSet[1];
var decimalCade = decimalSet.split('');
var countDecimalNow = 0;
for (p = 0; p < decimalCade.length; p++) {
if (!isNaN(parseFloat(decimalCade[p])) && isFinite(decimalCade[p])) {
countDecimalNow++;
decimalString += decimalCade[p];
} else {
pluginDecimal += decimalCade[p];
var partsMaskSep = aMasks[m].split(separatorField);
if (partsMaskSep.length == 2) {
var countDecimal = 0;
txtRealMask = aMasks[m].split('');
p = txtRealMask.length - 1;
for ( ; p >= 0; p--) {
if (txtRealMask[p] == '#') {
countDecimal++;
}
if (txtRealMask[p] == separatorField) {
break;
}
}
}
if(countDecimalNow < countDecimal) {
for(; countDecimalNow < countDecimal; countDecimalNow++) {
decimalString += '0';
var decimalString = '';
var pluginAfter = '';
var pluginDecimal = '';
var numberSet = me.element.value.split(separatorField);
if (typeof(numberSet[1]) == 'undefined') {
var decimalSet = '';
var newInt = '';
var flagAfter = true;
var newPluginDecimal = '';
var decimalCade = numberSet[0].split('');
for (p = 0; p < decimalCade.length; p++) {
if ((!isNaN(parseFloat(decimalCade[p])) && isFinite(decimalCade[p])) || (decimalCade[p] == ',') || (decimalCade[p] == '.') ) {
newInt += decimalCade[p];
flagAfter = false;
} else {
if (flagAfter) {
pluginAfter += decimalCade[p];
} else {
newPluginDecimal += decimalCade[p];
}
}
}
numberSet[0] = newInt;
numberSet[1] = newPluginDecimal;
}
var decimalSet = numberSet[1];
var decimalCade = decimalSet.split('');
var countDecimalNow = 0;
for (p = 0; p < decimalCade.length; p++) {
if (!isNaN(parseFloat(decimalCade[p])) && isFinite(decimalCade[p])) {
countDecimalNow++;
decimalString += decimalCade[p];
} else {
pluginDecimal += decimalCade[p];
}
}
if(countDecimalNow < countDecimal) {
for(; countDecimalNow < countDecimal; countDecimalNow++) {
decimalString += '0';
}
me.element.value = pluginAfter + numberSet[0] + separatorField + decimalString + pluginDecimal;
}
me.element.value = pluginAfter + numberSet[0] + separatorField + decimalString + pluginDecimal;
}
break;
}
}