BUG 8167 1st commit - bugs related still remains
This commit is contained in:
@@ -729,7 +729,7 @@ function G_Text( form, element, name)
|
|||||||
};
|
};
|
||||||
|
|
||||||
//Get Cursor Position
|
//Get Cursor Position
|
||||||
/*this.getCursorPos = function () {
|
this.getCursorPos = function () {
|
||||||
var textElement=me.element;
|
var textElement=me.element;
|
||||||
if (!document.selection) return textElement.selectionStart;
|
if (!document.selection) return textElement.selectionStart;
|
||||||
//save off the current value to restore it later,
|
//save off the current value to restore it later,
|
||||||
@@ -755,7 +755,7 @@ function G_Text( form, element, name)
|
|||||||
return cursorPos;
|
return cursorPos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};*/
|
};
|
||||||
|
|
||||||
this.setSelectionRange = function(selectionStart, selectionEnd) {
|
this.setSelectionRange = function(selectionStart, selectionEnd) {
|
||||||
var input=me.element;
|
var input=me.element;
|
||||||
@@ -877,7 +877,7 @@ function G_Text( form, element, name)
|
|||||||
switch(chars[c]){
|
switch(chars[c]){
|
||||||
case '0': case '1': case '2': case '3': case '4':
|
case '0': case '1': case '2': case '3': case '4':
|
||||||
case '5': case '6': case '7': case '8': case '9':
|
case '5': case '6': case '7': case '8': case '9':
|
||||||
case '.': case ',':
|
case me.comma_separator:
|
||||||
newValue += chars[c];
|
newValue += chars[c];
|
||||||
newCont++;
|
newCont++;
|
||||||
if (c + 1 == cursor.selectionStart){
|
if (c + 1 == cursor.selectionStart){
|
||||||
@@ -895,7 +895,16 @@ function G_Text( form, element, name)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (newCursor == -1){
|
||||||
|
|
||||||
|
newCursor = newValue.length;
|
||||||
|
}
|
||||||
|
if (cursor.selectionStart != cursor.selectionEnd){
|
||||||
|
return {result: newValue, cursor: cursor};
|
||||||
|
}
|
||||||
|
else{
|
||||||
return {result: newValue, cursor: {selectionStart: newCursor, selectionEnd: newCursor}};
|
return {result: newValue, cursor: {selectionStart: newCursor, selectionEnd: newCursor}};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.replaceMask = function(value, cursor, mask, type, comma){
|
this.replaceMask = function(value, cursor, mask, type, comma){
|
||||||
@@ -933,6 +942,31 @@ function G_Text( form, element, name)
|
|||||||
return aResults[minIndex];
|
return aResults[minIndex];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.getCleanMask = function(){
|
||||||
|
aMask = me.mask.split('');
|
||||||
|
maskOut = '';
|
||||||
|
for(i=0; i < aMask.length; i++){
|
||||||
|
if (me.mType == 'currency' || me.mType == 'percentage'){
|
||||||
|
switch(aMask[i]){
|
||||||
|
case '0': case '#':
|
||||||
|
maskOut += aMask[i];
|
||||||
|
break;
|
||||||
|
case me.comma_separator:
|
||||||
|
maskOut += '_';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
switch(aMask[i]){
|
||||||
|
case '0': case '#': case 'd': case 'm': case 'y': case 'Y':
|
||||||
|
maskOut += aMask[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return maskOut;
|
||||||
|
}
|
||||||
|
|
||||||
this.applyMask = function(keyCode){
|
this.applyMask = function(keyCode){
|
||||||
if (me.mask != ''){
|
if (me.mask != ''){
|
||||||
dataWOMask = me.removeMask();
|
dataWOMask = me.removeMask();
|
||||||
@@ -940,23 +974,33 @@ function G_Text( form, element, name)
|
|||||||
currentSel = dataWOMask.cursor;
|
currentSel = dataWOMask.cursor;
|
||||||
cursorStart = currentSel.selectionStart;
|
cursorStart = currentSel.selectionStart;
|
||||||
cursorEnd = currentSel.selectionEnd;
|
cursorEnd = currentSel.selectionEnd;
|
||||||
|
action = 'mask';
|
||||||
|
swPeriod = false;
|
||||||
switch(keyCode){
|
switch(keyCode){
|
||||||
case 0:
|
case 0:
|
||||||
|
action = 'none';
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
|
|
||||||
newValue = currentValue.substring(0, cursorStart - 1);
|
newValue = currentValue.substring(0, cursorStart - 1);
|
||||||
newValue += currentValue.substring(cursorEnd, currentValue.length);
|
newValue += currentValue.substring(cursorEnd, currentValue.length);
|
||||||
newCursor = cursorStart - 1;
|
newCursor = cursorStart - 1;
|
||||||
|
//alert('aaa' + newValue + ' , ' + newCursor );
|
||||||
break;
|
break;
|
||||||
case 46:
|
case 46:
|
||||||
newValue = currentValue.substring(0, cursorStart);
|
newValue = currentValue.substring(0, cursorStart);
|
||||||
newValue += currentValue.substring(cursorEnd + 1, currentValue.length);
|
newValue += currentValue.substring(cursorEnd + 1, currentValue.length);
|
||||||
newCursor = cursorStart;
|
newCursor = cursorStart;
|
||||||
break;
|
break;
|
||||||
case 256:
|
case 256: case 44:
|
||||||
|
swPeriod = true;
|
||||||
newValue = currentValue.substring(0, cursorStart);
|
newValue = currentValue.substring(0, cursorStart);
|
||||||
|
if (keyCode == 256)
|
||||||
newValue += '.';
|
newValue += '.';
|
||||||
|
else
|
||||||
|
newValue += ',';
|
||||||
newValue += currentValue.substring(cursorEnd, currentValue.length);
|
newValue += currentValue.substring(cursorEnd, currentValue.length);
|
||||||
|
//alert(newValue);
|
||||||
newCursor = cursorStart + 1;
|
newCursor = cursorStart + 1;
|
||||||
break;
|
break;
|
||||||
case 35: case 36: case 37: case 38: case 39: case 40:
|
case 35: case 36: case 37: case 38: case 39: case 40:
|
||||||
@@ -967,6 +1011,7 @@ function G_Text( form, element, name)
|
|||||||
case 37:newCursor = cursorStart - 1;break;
|
case 37:newCursor = cursorStart - 1;break;
|
||||||
case 39:newCursor = cursorStart + 1;break;
|
case 39:newCursor = cursorStart + 1;break;
|
||||||
}
|
}
|
||||||
|
action = 'move';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
newKey = String.fromCharCode(keyCode);
|
newKey = String.fromCharCode(keyCode);
|
||||||
@@ -977,9 +1022,33 @@ function G_Text( form, element, name)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (newCursor < 0) newCursor = 0;
|
if (newCursor < 0) newCursor = 0;
|
||||||
|
if (keyCode != 8 && keyCode != 35 && keyCode != 36 && keyCode != 37 && keyCode != 39){ testData = dataWOMask.result;
|
||||||
|
tamData = testData.length;
|
||||||
|
cleanMask = me.getCleanMask();
|
||||||
|
tamMask = cleanMask.length;
|
||||||
|
sw = false;
|
||||||
|
if (testData.indexOf(me.comma_separator) == -1){
|
||||||
|
//alert('entro');
|
||||||
|
aux = cleanMask.split('_');
|
||||||
|
tamMask = aux[0].length;
|
||||||
|
sw = true;
|
||||||
|
}
|
||||||
|
if (tamData >= tamMask && (!swPeriod && testData.indexOf(me.comma_separator) == -1)){
|
||||||
|
//alert('cancel + ' + String.fromCharCode(keyCode));
|
||||||
|
action = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switch(action){
|
||||||
|
case 'mask': case 'move':
|
||||||
dataNewMask = me.replaceMasks(newValue, newCursor);
|
dataNewMask = me.replaceMasks(newValue, newCursor);
|
||||||
me.element.value = dataNewMask.result;
|
me.element.value = dataNewMask.result;
|
||||||
me.setSelectionRange(dataNewMask.cursor,dataNewMask.cursor);
|
me.setSelectionRange(dataNewMask.cursor,dataNewMask.cursor);
|
||||||
|
break;
|
||||||
|
//case 'move':
|
||||||
|
//alert(newCursor);
|
||||||
|
//me.setSelectionRange(newCursor,newCursor);
|
||||||
|
//break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
currentValue = me.element.value;
|
currentValue = me.element.value;
|
||||||
@@ -1021,17 +1090,18 @@ function G_Text( form, element, name)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (newCursor < 0) newCursor = 0;
|
if (newCursor < 0) newCursor = 0;
|
||||||
|
|
||||||
me.element.value = newValue;
|
me.element.value = newValue;
|
||||||
me.setSelectionRange(newCursor,newCursor);
|
me.setSelectionRange(newCursor,newCursor);
|
||||||
}
|
}
|
||||||
//Launch OnChange Event
|
//Launch OnChange Event
|
||||||
if (me.element.fireEvent){
|
/*if (me.element.fireEvent){
|
||||||
me.element.fireEvent("onchange");
|
me.element.fireEvent("onchange");
|
||||||
}else{
|
}else{
|
||||||
var evObj = document.createEvent('HTMLEvents');
|
var evObj = document.createEvent('HTMLEvents');
|
||||||
evObj.initEvent( 'change', true, true );
|
evObj.initEvent( 'change', true, true );
|
||||||
me.element.dispatchEvent(evObj);
|
me.element.dispatchEvent(evObj);
|
||||||
}
|
}*/
|
||||||
};
|
};
|
||||||
|
|
||||||
this.handleKeyDown = function(event){
|
this.handleKeyDown = function(event){
|
||||||
@@ -1065,6 +1135,8 @@ function G_Text( form, element, name)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (event.altKey) return true;
|
if (event.altKey) return true;
|
||||||
|
if (event.ctrlKey) return true;
|
||||||
|
if (event.shiftKey) return true;
|
||||||
me.checkBrowser();
|
me.checkBrowser();
|
||||||
if ((me.browser.name == 'Firefox') && (keyCode == 8 || keyCode == 46)){
|
if ((me.browser.name == 'Firefox') && (keyCode == 8 || keyCode == 46)){
|
||||||
if (me.browser.name == 'Chrome'){
|
if (me.browser.name == 'Chrome'){
|
||||||
@@ -1091,9 +1163,17 @@ function G_Text( form, element, name)
|
|||||||
patron = /[0-9]/;
|
patron = /[0-9]/;
|
||||||
key = String.fromCharCode(pressKey);
|
key = String.fromCharCode(pressKey);
|
||||||
keyValid = patron.test(key);
|
keyValid = patron.test(key);
|
||||||
keyValid = keyValid || (pressKey == 44);
|
|
||||||
keyValid = keyValid || (pressKey == 45);
|
keyValid = keyValid || (pressKey == 45);
|
||||||
|
if (me.comma_separator == '.'){
|
||||||
|
if (me.element.value.indexOf('.')==-1){
|
||||||
keyValid = keyValid || (pressKey == 46);
|
keyValid = keyValid || (pressKey == 46);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (me.element.value.indexOf(',')==-1){
|
||||||
|
keyValid = keyValid || (pressKey == 44);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'Alpha':
|
case 'Alpha':
|
||||||
patron =/[a-zA-Z]/; // \sáéÃÂÂÂÂóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/;
|
patron =/[a-zA-Z]/; // \sáéÃÂÂÂÂóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/;
|
||||||
@@ -1577,7 +1657,6 @@ function G()
|
|||||||
if (num.length == 0) return {result: '', cursor: 0};
|
if (num.length == 0) return {result: '', cursor: 0};
|
||||||
var iNum = invertir(num);
|
var iNum = invertir(num);
|
||||||
var iMask = invertir(mask);
|
var iMask = invertir(mask);
|
||||||
//alert('A: ' + iCursor);
|
|
||||||
if (iMask.indexOf('0'+__DECIMAL_SEP)> 0){ //Mask has .0 and will applied complete
|
if (iMask.indexOf('0'+__DECIMAL_SEP)> 0){ //Mask has .0 and will applied complete
|
||||||
aMask = iMask;
|
aMask = iMask;
|
||||||
iNum = _getOnlyNumbers(iNum,'*');
|
iNum = _getOnlyNumbers(iNum,'*');
|
||||||
@@ -1679,12 +1758,8 @@ function G()
|
|||||||
}
|
}
|
||||||
if (sw_c && sw_d){
|
if (sw_c && sw_d){
|
||||||
myOut = _dout + __DECIMAL_SEP + _cout;
|
myOut = _dout + __DECIMAL_SEP + _cout;
|
||||||
//alert('_dout: ' + _dout);
|
|
||||||
//alert('_cout: ' + _cout);
|
|
||||||
}else{
|
}else{
|
||||||
myOut = _dout + _cout;
|
myOut = _dout + _cout;
|
||||||
//alert('_dout: ' + _dout);
|
|
||||||
//alert('_cout: ' + _cout);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//alert(myOut);
|
//alert(myOut);
|
||||||
|
|||||||
Reference in New Issue
Block a user