Bueno mi porblema es que al apretar en agregar este abre una nueva ventana en donde hago una busqueda del porducto a agregar en la lista y al selecionarlo este se carga en la pagina padre.
Mi porblema esta en que al selecionar un porducto en la ventana hija se crea un imput text en la ventana padre a la cual debo asignar un evento onblur.
ya todo va bien pero sucede que si cierro la ventana hija el efecto onblur deja de funcionar, la forma en como agrego el eevnto on blur a diucho text es el siguiente
opener.document.getElementById("cant"+arreglo[0]).onblur=function(){calcularTotal(opener.document. getElementById("cant"+arreglo[0]))};
mi pero es que si quito el opener deja de funcionar en todo sentido y con el opener funciona ben
esta instruciona se hace desde la ventana hija.
Ojala alguien me pueda decir como agregar este evento onblur desde la ventana padre porque hasta ahora no se como
acontinuacion les dejo la funcion que agrega desde la ventana padre una producto nuevo a la lista
Código:
ojala alguien mempueda ayudar o aconsejar si ve algo aml agradesco de antemano toda la ayuda function agregarFila(codigo) { agregarFilaAjax=nuevoAjax(); agregarFilaAjax.open("POST", "../../ajax/ventas/producto.php", true); agregarFilaAjax.onreadystatechange = function (){ if(agregarFilaAjax.readyState == 4) { xml=agregarFilaAjax.responseXML; tam=xml.getElementsByTagName('codigo').length; if(tam!=0) { tabla=opener.document.getElementById('dte_producto'); arreglo=new Array(); arreglo[0]=xml.getElementsByTagName('codigo').item(0).firstChild.data; arreglo[1]=xml.getElementsByTagName('producto').item(0).firstChild.data; arreglo[2]=xml.getElementsByTagName('unitario').item(0).firstChild.data; arreglo[3]=""; arreglo[4]=""; fila=creaFila(arreglo, opener.document, 'radio', 'productos[]'); tabla.appendChild(fila); opener.document.getElementById("cant"+arreglo[0]).onblur=function(){calcularTotal(opener.document.getElementById("cant"+arreglo[0]))}; } } } agregarFilaAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); agregarFilaAjax.send("codigo="+codigo); } function creaFila(arreglo, objeto, tipo, nombre) { fila=objeto.createElement('tr'); for(i=0;i<arreglo.length; i++) { if(i==0) { columna=objeto.createElement('td'); inpObjt=crearInput('input',nombre,objeto); inpObjt.setAttribute('type',tipo); inpObjt.setAttribute('value',arreglo[0]); columna.appendChild(inpObjt); fila.appendChild(columna); } else { if(i==2) { columna=objeto.createElement('td'); inpObjt=crearInput('input',"cant"+arreglo[0],objeto); inpObjt.setAttribute('type','text'); inpObjt.setAttribute('value','0'); inpObjt.setAttribute('maxlength','5'); inpObjt.setAttribute('size','5'); inpObjt.setAttribute('id',"cant"+arreglo[0]); columna.appendChild(inpObjt); fila.appendChild(columna); } else { if(i==3) { columna=objeto.createElement('td'); inpObjt=crearInput('input',"unit"+arreglo[0],objeto); inpObjt.setAttribute('type','text'); inpObjt.setAttribute('readOnly','readOnly'); inpObjt.setAttribute('value',arreglo[2]); inpObjt.setAttribute('maxlength','10'); inpObjt.setAttribute('size','7'); inpObjt.setAttribute('id',"unit"+arreglo[0]); columna.appendChild(inpObjt); fila.appendChild(columna); } else { if(i==4) { columna=objeto.createElement('td'); inpObjt=crearInput('input',"total"+arreglo[0],objeto); inpObjt.setAttribute('type','text'); inpObjt.setAttribute('value','0'); inpObjt.setAttribute('maxlength','10'); inpObjt.setAttribute('size','7'); inpObjt.setAttribute('id',"total"+arreglo[0]); columna.appendChild(inpObjt); fila.appendChild(columna); } else { columna=objeto.createElement('td'); columna.setAttribute('align','center'); columna.appendChild(objeto.createTextNode(arreglo[i])); fila.appendChild(columna); } } } } } return fila; } function crearInput(tag,name, objeto){ if (name && window.ActiveXObject){ element = objeto.createElement('<'+tag+' name="'+name+'">'); } else{ element =objeto.createElement(tag); element.setAttribute('name',name); } return element; }
Atte
Goomba