BUG 9438 Don't add ceros the mask in the fields SOLVED

- I add code for add ceros in the fields
This commit is contained in:
Brayan Osmar Pereyra Suxo
2012-07-11 18:53:53 -04:00
parent b18a424295
commit 9a1c4e6f72
2 changed files with 52 additions and 58 deletions

View File

@@ -334,6 +334,7 @@ function G_Text( form, element, name)
this.mType = 'text';
this.parent = G_Field;
this.browser = {};
this.comma_separator = ".";
this.checkBrowser = function(){
var nVer = navigator.appVersion;
@@ -1044,6 +1045,7 @@ function G_Text( form, element, name)
}
}
switch(action){
case 'mask': case 'move':
dataNewMask = me.replaceMasks(newValue, newCursor);
@@ -1232,19 +1234,6 @@ function G_Text( form, element, name)
patron = /[0-9,\.]/;
}
if (me.mType == 'text') {
me.comma_separator = '';
patron = /[0-9\-]/;
txtRealMask = me.mask.split('');
p = txtRealMask.length - 1;
for ( ; p >= 0; p--) {
if (txtRealMask[p] != '#' && txtRealMask[p] != '%' && txtRealMask[p] != ' ') {
me.comma_separator = txtRealMask[p];
break;
}
}
}
key = String.fromCharCode(pressKey);
keyValid = patron.test(key);
keyValid = keyValid || (pressKey == 45);
@@ -1352,55 +1341,58 @@ function G_Text( form, element, name)
}
}
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 pluginDecimal = '';
var numberSet = me.element.value.split(separatorField);
if (typeof(numberSet[1]) == 'undefined') {
var decimalSet = '';
var newInt = '';
var newPluginDecimal = '';
var decimalCade = numberSet[0].split('');
for (p = 0; p < decimalCade.length; p++) {
if (!isNaN(parseFloat(decimalCade[p])) && isFinite(decimalCade[p])) {
newInt += decimalCade[p];
} else {
newPluginDecimal += decimalCade[p];
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;
}
}
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 decimalString = '';
var pluginDecimal = '';
var numberSet = me.element.value.split(separatorField);
if(countDecimalNow < countDecimal) {
for(; countDecimalNow < countDecimal; countDecimalNow++) {
decimalString += '0';
if (typeof(numberSet[1]) == 'undefined') {
var decimalSet = '';
var newInt = '';
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];
} 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 = numberSet[0] + separatorField + decimalString + pluginDecimal;
}
me.element.value = numberSet[0] + separatorField + decimalString + pluginDecimal;
}
}

View File

@@ -968,6 +968,7 @@ class XmlForm_Field_Text extends XmlForm_Field_SimpleText
var $function = '';
var $replaceTags = 0;
var $renderMode = '';
var $comma_separator = '.';
/**
@@ -1012,6 +1013,7 @@ class XmlForm_Field_Text extends XmlForm_Field_SimpleText
$html .= 'onkeypress="'.$this->htmlentities($onkeypress, ENT_COMPAT, 'utf-8').'" ';
$html .= $this->NSDefaultValue().' ';
$html .= $this->NSRequiredValue().' ';
$html .= 'pm:decimal_separator="' + $this->comma_separator + '" ';
$html .= '/>';
}else{ //VIEW MODE
$html .= $this->htmlentities($value, ENT_QUOTES, 'utf-8');