BUG-15572: En IE 8, 9,10 al tener un campo tipo date en una grilla SOLVED

- When you add a field loses focus.
- A validation was add when the browser is IE, in file grid.js and function addGridRow.
This commit is contained in:
Marco Antonio Nina
2014-09-08 16:16:29 -04:00
parent 99786faf4d
commit 949b45b976
2 changed files with 53 additions and 29 deletions

View File

@@ -421,41 +421,61 @@ var G_Grid = function(oForm, sGridName){
tags = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('a');
if (tags.length == 2){ //DATEPICKER
//Copy Images
//img1 = tags[0].innerHTML;
img2 = tags[1].innerHTML;
//Create new trigger name
var datePickerTriggerId = tags[1].id.replace(/\[1\]/g, '\[' + currentRow + '\]');
//Remove 'a' tag for date picker trigger
oNewRow.getElementsByTagName('td')[i].removeChild(tags[1]);
//Capture Script and remove
var scriptTags = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');
oNewRow.getElementsByTagName('td')[i].removeChild(scriptTags[0]);
//Create 'a' to remove Date
if (tags[0].onclick){
var onclickevn = new String(tags[0].onclick);
eval('tags[0].onclick = ' + onclickevn.replace(/\[1\]/g, '\[' + currentRow + '\]') + ';');
}
//Create new 'a' to trigger DatePicker
var a2 = document.createElement('a');
if (_BROWSER.name == 'msie' && aObjects.length==1) {
//Clone new input element if browser is IE
var oNewOBJ = this.cloneElement(aObjects[n]);
oNewOBJ.value = defaultValue;
var parentGG = aObjects[n].parentNode;
parentGG.removeChild(aObjects[n]);
parentGG.appendChild(oNewOBJ);
}
//Copy Images
img1 = tags[0].innerHTML;
img2 = tags[1].innerHTML;
//Create new trigger name
var datePickerTriggerId = tags[1].id.replace(/\[1\]/g, '\[' + currentRow + '\]');
//Remove 'a' tag for date picker trigger
oNewRow.getElementsByTagName('td')[i].removeChild(tags[1]);
//Capture Script and remove
var scriptTags = oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');
oNewRow.getElementsByTagName('td')[i].removeChild(scriptTags[0]);
//Create 'a' to remove Date
var a1 = tags[0];
if (tags[0].onclick){
if (_BROWSER.name == 'msie' && aObjects.length==1) {
//style 'a' to remove Date
var styleText = "left: -28px; top: 2px; position: relative;";
a1.style.setAttribute("cssText", styleText );
}
var onclickevn = new String(tags[0].onclick);
eval('tags[0].onclick = ' + onclickevn.replace(/\[1\]/g, '\[' + currentRow + '\]') + ';');
}
//Create new 'a' to trigger DatePicker
var a2 = document.createElement('a');
if( a2.style.setAttribute ) {
var styleText = "position: relative; top: 2px; left: -13px;";
a2.style.setAttribute("cssText", styleText );
var styleText = "position: relative; top: 2px; left: -13px;";
if (_BROWSER.name == 'msie' && aObjects.length==1) {
var styleText = "position: relative; top: 2px; left: -4px;";
}
a2.style.setAttribute("cssText", styleText );
}
else {
var styleText = "position: relative; top: 2px; left: -16px;";
a2.setAttribute("style", styleText );
}
a2.id = datePickerTriggerId;
a2.innerHTML = img2;
oNewRow.getElementsByTagName('td')[i].appendChild(a2);
a2.id = datePickerTriggerId;
a2.innerHTML = img2;
oNewRow.getElementsByTagName('td')[i].appendChild(a2);
//Load DatePicker Trigger
datePicker4("", newID, attributes.mask, attributes.start, attributes.end, attributes.time);
if (_BROWSER.name == 'msie' && aObjects.length==1) {
a1.innerHTML = img1;
oNewRow.getElementsByTagName('td')[i].appendChild(a1);
}
//Load DatePicker Trigger
datePicker4("", newID, attributes.mask, attributes.start, attributes.end, attributes.time);
aObjects[n].value = defaultValue;
aObjects[n].value = defaultValue;
}else{
if (_BROWSER.name == 'msie' && aObjects.length==1){ //Clone new input element if browser is IE
var oNewOBJ = this.cloneElement(aObjects[n]);

View File

@@ -1380,10 +1380,14 @@ newElem.options[i]=new Option(elem.options[i].text,elem.options[i].value,elem.op
newElem.options[pos].selected=true;}
break;}
return newElem;};this.replaceHtml=function(el,html){var oldEl=typeof el==="string"?document.getElementById(el):el;if(this.determineBrowser()=="MSIE"){oldEl.innerHTML=html;return oldEl;}else{var newEl=oldEl.cloneNode(false);newEl.innerHTML=html;oldEl.parentNode.replaceChild(newEl,oldEl);return newEl;}};this.addGridRow=function(){this.oGrid=document.getElementById(this.sGridName);var i,aObjects;var defaultValue='';var n,a,x;var oRow=document.getElementById('firstRow_'+this.sGridName);var aCells=oRow.getElementsByTagName('td');var oNewRow=this.oGrid.insertRow(this.oGrid.rows.length-1);var currentRow=this.oGrid.rows.length-2;var newID,attributes,img2,gridType;oNewRow.onmouseover=function(){highlightRow(this,'#D9E8FF');};oNewRow.onmouseout=function(){highlightRow(this,'#fff');};for(i=0;i<aCells.length;i++){oNewRow.appendChild(aCells[i].cloneNode(true));switch(i){case 0:oNewRow.getElementsByTagName('td')[i].innerHTML=currentRow;break;case aCells.length-1:oNewRow.getElementsByTagName('td')[i].innerHTML=oNewRow.getElementsByTagName('td')[i].innerHTML.replace(/\[1\]/g,'\['+currentRow+'\]');break;default:var eNodeName=aCells[i].innerHTML.substring(aCells[i].innerHTML.indexOf('<')+1,aCells[i].innerHTML.indexOf(' '));eNodeName=eNodeName.toLowerCase();switch(eNodeName){case'input':aObjects=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('input');if(aObjects){newID=aObjects[0].id.replace(/\[1\]/g,'\['+currentRow+'\]');aObjects[0].id=newID;aObjects[0].name=newID;attributes=elementAttributesNS(aObjects[0],'pm');if(typeof(attributes.defaultvalue)!="undefined"&&attributes.defaultvalue!=""){defaultValue=attributes.defaultvalue;}else{defaultValue="";}
for(n=0;n<aObjects.length;n++){switch(aObjects[n].type){case'text':case'password':aObjects[n].className="module_app_input___gray";tags=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('a');if(tags.length==2){img2=tags[1].innerHTML;var datePickerTriggerId=tags[1].id.replace(/\[1\]/g,'\['+currentRow+'\]');oNewRow.getElementsByTagName('td')[i].removeChild(tags[1]);var scriptTags=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');oNewRow.getElementsByTagName('td')[i].removeChild(scriptTags[0]);if(tags[0].onclick){var onclickevn=new String(tags[0].onclick);eval('tags[0].onclick = '+onclickevn.replace(/\[1\]/g,'\['+currentRow+'\]')+';');}
var a2=document.createElement('a');if(a2.style.setAttribute){var styleText="position: relative; top: 2px; left: -13px;";a2.style.setAttribute("cssText",styleText);}
for(n=0;n<aObjects.length;n++){switch(aObjects[n].type){case'text':case'password':aObjects[n].className="module_app_input___gray";tags=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('a');if(tags.length==2){if(_BROWSER.name=='msie'&&aObjects.length==1){var oNewOBJ=this.cloneElement(aObjects[n]);oNewOBJ.value=defaultValue;var parentGG=aObjects[n].parentNode;parentGG.removeChild(aObjects[n]);parentGG.appendChild(oNewOBJ);}
img1=tags[0].innerHTML;img2=tags[1].innerHTML;var datePickerTriggerId=tags[1].id.replace(/\[1\]/g,'\['+currentRow+'\]');oNewRow.getElementsByTagName('td')[i].removeChild(tags[1]);var scriptTags=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');oNewRow.getElementsByTagName('td')[i].removeChild(scriptTags[0]);var a1=tags[0];if(tags[0].onclick){if(_BROWSER.name=='msie'&&aObjects.length==1){var styleText="left: -28px; top: 2px; position: relative;";a1.style.setAttribute("cssText",styleText);}
var onclickevn=new String(tags[0].onclick);eval('tags[0].onclick = '+onclickevn.replace(/\[1\]/g,'\['+currentRow+'\]')+';');}
var a2=document.createElement('a');if(a2.style.setAttribute){var styleText="position: relative; top: 2px; left: -13px;";if(_BROWSER.name=='msie'&&aObjects.length==1){var styleText="position: relative; top: 2px; left: -4px;";}
a2.style.setAttribute("cssText",styleText);}
else{var styleText="position: relative; top: 2px; left: -16px;";a2.setAttribute("style",styleText);}
a2.id=datePickerTriggerId;a2.innerHTML=img2;oNewRow.getElementsByTagName('td')[i].appendChild(a2);datePicker4("",newID,attributes.mask,attributes.start,attributes.end,attributes.time);aObjects[n].value=defaultValue;}else{if(_BROWSER.name=='msie'&&aObjects.length==1){var oNewOBJ=this.cloneElement(aObjects[n]);oNewOBJ.value=defaultValue;var parentGG=aObjects[n].parentNode;parentGG.removeChild(aObjects[n]);parentGG.appendChild(oNewOBJ);}else{if((attributes.gridtype)&&attributes.gridtype=="currency"){var attributesCurrency=elementAttributesNS(aObjects[n],"");aObjects[n].value=attributesCurrency.value.replace(/[.,0-9\s]/g,"");}else{aObjects[n].value=defaultValue;}}}
a2.id=datePickerTriggerId;a2.innerHTML=img2;oNewRow.getElementsByTagName('td')[i].appendChild(a2);if(_BROWSER.name=='msie'&&aObjects.length==1){a1.innerHTML=img1;oNewRow.getElementsByTagName('td')[i].appendChild(a1);}
datePicker4("",newID,attributes.mask,attributes.start,attributes.end,attributes.time);aObjects[n].value=defaultValue;}else{if(_BROWSER.name=='msie'&&aObjects.length==1){var oNewOBJ=this.cloneElement(aObjects[n]);oNewOBJ.value=defaultValue;var parentGG=aObjects[n].parentNode;parentGG.removeChild(aObjects[n]);parentGG.appendChild(oNewOBJ);}else{if((attributes.gridtype)&&attributes.gridtype=="currency"){var attributesCurrency=elementAttributesNS(aObjects[n],"");aObjects[n].value=attributesCurrency.value.replace(/[.,0-9\s]/g,"");}else{aObjects[n].value=defaultValue;}}}
var aObjectsScript=oNewRow.getElementsByTagName('td')[i].getElementsByTagName('script');var sObjectType=this.aFields[i-1].sType;if(aObjectsScript[0]!='undefined'&&sObjectType=='suggest'){if(this.determineBrowser()=="MSIE"){var firstNode=aCells[i];var firstScriptSuggest=firstNode.childNodes[2].innerHTML;var sScriptAdjustRow=firstScriptSuggest.replace(/\[1\]/g,'\['+currentRow+'\]');var elementTD=oNewRow.getElementsByTagName('td')[i];var elementLabel=elementTD.childNodes[0];var sNewLabelRow=elementLabel.getAttribute("id").replace(/\[1\]/g,'\['+currentRow+'\]');var elementHidden=elementTD.childNodes[1];var elementScript=elementTD.childNodes[2];var parentScript=elementScript.parentNode;var scriptElement=document.createElement("script");scriptElement.text=sScriptAdjustRow;parentScript.removeChild(elementScript);parentScript.appendChild(scriptElement);}else{var sObjScript=aObjectsScript[0].innerHTML;var sNewObjScript=sObjScript.replace(/\[1\]/g,"\["+currentRow+"\]");aObjectsScript[0].innerHTML=sNewObjScript;eval(aObjectsScript[0].innerHTML);}}
break;case'checkbox':var attributeCheckBox=elementAttributesNS(aObjects[n],"");if(defaultValue==""||(typeof(attributeCheckBox.falseValue)!="undefined"&&defaultValue==attributeCheckBox.falseValue)||(typeof(attributeCheckBox.falsevalue)!="undefined"&&defaultValue==attributeCheckBox.falsevalue)){aObjects[n].checked=false;}else{aObjects[n].checked=true;}
break;case'hidden':if((attributes.gridtype!="yesno"&&attributes.gridtype!="dropdown")||typeof(attributes.gridtype)=="undefined"){aObjects[n].value=defaultValue;newID=aObjects[n].id.replace(/\[1\]/g,'\['+currentRow+'\]');aObjects[n].id=newID;aObjects[n].name=newID;}