Merge pull request #1588 from marcoAntonioNina/BUG-10275
BUG-10275 Problemas en campos currency con las mascaras SOLVED
This commit is contained in:
@@ -105,6 +105,9 @@ var fieldSeparator=getField("PME_COMMA_SEPARATOR",fieldForm);
|
|||||||
var fieldMask=getField("PME_MASK",fieldForm);
|
var fieldMask=getField("PME_MASK",fieldForm);
|
||||||
var savedFieldName=fieldName.value;
|
var savedFieldName=fieldName.value;
|
||||||
var pme_validating;
|
var pme_validating;
|
||||||
|
var separatorOld;
|
||||||
|
var separatorNew;
|
||||||
|
|
||||||
fieldName.focus();
|
fieldName.focus();
|
||||||
fieldName.select();
|
fieldName.select();
|
||||||
leimnud.event.add(fieldName, 'change', {method:dynaformVerifyFieldName, instance:fieldName, event:true});
|
leimnud.event.add(fieldName, 'change', {method:dynaformVerifyFieldName, instance:fieldName, event:true});
|
||||||
@@ -135,9 +138,7 @@ function replaceAll( text, search, change ) {
|
|||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkSeparator() {
|
function selectSeparator() {
|
||||||
var separatorOld;
|
|
||||||
var separatorNew;
|
|
||||||
switch (fieldSeparator.value) {
|
switch (fieldSeparator.value) {
|
||||||
case '.':
|
case '.':
|
||||||
separatorOld = ',';
|
separatorOld = ',';
|
||||||
@@ -152,42 +153,34 @@ function checkSeparator() {
|
|||||||
separatorNew = '.';
|
separatorNew = '.';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var mask = fieldMask.value;
|
|
||||||
if (fieldVal.value !== 'Int'){
|
|
||||||
var amount = fieldMask.value.length;
|
|
||||||
var separator = mask.substring(amount-3, amount-2);
|
|
||||||
mask = mask.substring(0, amount-3);
|
|
||||||
}
|
}
|
||||||
mask = replaceAll(mask , separatorNew, separatorOld);
|
function changeVal (positionSeparator) {
|
||||||
if (fieldVal.value !== 'Int'){
|
var maskDecimal = '';
|
||||||
mask = mask.concat(separatorNew, '##');
|
var maskInteger = fieldMask.value;
|
||||||
|
if (positionSeparator > 0) {
|
||||||
|
maskDecimal = fieldMask.value.substring(positionSeparator + 1, fieldMask.value.length);
|
||||||
|
maskInteger = fieldMask.value.substring(0, positionSeparator);
|
||||||
}
|
}
|
||||||
fieldMask.value = mask;
|
maskInteger = replaceAll(maskInteger , separatorNew, separatorOld);
|
||||||
|
|
||||||
|
if (fieldVal.value === 'Int'){
|
||||||
|
fieldMask.value = maskInteger;
|
||||||
|
}
|
||||||
|
if (fieldVal.value === 'Real'){
|
||||||
|
if (maskDecimal == '' || (maskDecimal.length > 6)) {
|
||||||
|
maskDecimal = '######';
|
||||||
|
}
|
||||||
|
fieldMask.value = maskInteger + separatorNew + maskDecimal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function checkSeparator() {
|
||||||
|
selectSeparator();
|
||||||
|
changeVal (fieldMask.value.indexOf(separatorOld));
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkVal() {
|
function checkVal() {
|
||||||
if (fieldVal.value === 'Int'){
|
selectSeparator();
|
||||||
aux = fieldMask.value;
|
changeVal (fieldMask.value.indexOf(separatorNew));
|
||||||
aux = aux.replace('.000','');
|
|
||||||
var amount = fieldMask.value.length;
|
|
||||||
var sw = 0;
|
|
||||||
var i = 0;
|
|
||||||
while (sw == 0) {
|
|
||||||
if(aux.charAt(amount - i - 1) == ',' || aux.charAt(amount - i - 1) == '.') {
|
|
||||||
sw = 1;
|
|
||||||
} else {
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i <= 2) {
|
|
||||||
aux = aux.substring(0, amount - i - 1);
|
|
||||||
}
|
|
||||||
fieldMask.value = aux;
|
|
||||||
}
|
|
||||||
if (fieldVal.value === 'Real'){
|
|
||||||
fieldMask.value = fieldMask.value+'.##';
|
|
||||||
}
|
|
||||||
checkSeparator();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
]]></PME_JS>
|
]]></PME_JS>
|
||||||
|
|||||||
Reference in New Issue
Block a user