Bug 6291: masks with digits that are larger than 4 characters and are not numbers are now correctly formated.

This commit is contained in:
Gustavo Adolfo Cruz Laura
2011-02-28 14:50:26 +00:00
parent 021f6740ee
commit 7a51c11fa8

View File

@@ -445,6 +445,15 @@ function replaceAll( text, busca, reemplaza ){
return text; return text;
} }
function isNumberMask (mask){
for ( var key in mask){
if (mask[key]!='#'&&mask[key]!=','&&mask[key]!='.'&&typeof(mask[key])=='string'){
return false;
}
}
return true;
}
this.putFormatNumber =function (evt) { this.putFormatNumber =function (evt) {
if((typeof(evt)==="undefined" || evt===0) && me.mask!='' ){ if((typeof(evt)==="undefined" || evt===0) && me.mask!='' ){
var numberSet=me.element.value.split('.'); var numberSet=me.element.value.split('.');
@@ -509,26 +518,35 @@ function replaceAll( text, busca, reemplaza ){
///////// end the slice code ... complete with zeros ///////// end the slice code ... complete with zeros
return; return;
*/ */
if (isNumberMask(maskpartInt)){
if(cd < maskpartInt.length && cd >= 4 && cd !=3){ if(cd < maskpartInt.length && cd >= 4 && cd !=3){
var newnamber=''; var newNumber='';
var cc=1; var cc=1;
while (onlynumber >0){ //alert (onlynumber);
while (onlynumber > 0){
lastdigito = onlynumber % 10; lastdigito = onlynumber % 10;
if (cc%3==0 && cd != cc){ if (cc%3==0 && cd != cc){
newnamber = ','+lastdigito.toString() + newnamber; newNumber = ','+lastdigito.toString() + newNumber;
} else { } else {
newnamber = lastdigito.toString() + newnamber; newNumber = lastdigito.toString() + newNumber;
} }
onlynumber =parseInt(onlynumber / 10); onlynumber =parseInt(onlynumber / 10);
cc++; cc++;
} }
if(maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length) =="%") if(maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length) =="%")
me.element.value = newnamber+' '+maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length); me.element.value = newNumber+' '+maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length);
else else
me.element.value = newnamber; me.element.value = newNumber;
} else { } else {
if(maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length) =="%") if(maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length) =="%")
me.element.value = onlynumber +' '+maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length); var spaceString;
if (me.element.value.substr( (me.element.value.length -1) ,me.element.value.length) == '%' ){
spaceString ='';
} else {
spaceString =' ';
}
me.element.value = onlynumber + spaceString + maskWithoutPto.substr( (maskWithoutPto.length -1) ,maskWithoutPto.length);
}
} }
} }
} }
@@ -728,7 +746,7 @@ function replaceAll( text, busca, reemplaza ){
oSel.setEndPoint('EndToStart', document.selection.createRange() ); oSel.setEndPoint('EndToStart', document.selection.createRange() );
field.selectionStart = oSel.text.length; field.selectionStart = oSel.text.length;
} }
return { selectionStart: field.selectionStart, selectionEnd: field.selectionEnd }; return {selectionStart: field.selectionStart, selectionEnd: field.selectionEnd};
} }