Foros del Web » Programando para Internet » Javascript »

Problemas con ONBLUR

Estas en el tema de Problemas con ONBLUR en el foro de Javascript en Foros del Web. hola a todos ojala alguien me pueda ayudar sucede que estoy haciuendo un sistema de cotizaciones y en la seccion de productos a cotizar, tengo ...
  #1 (permalink)  
Antiguo 28/04/2008, 19:35
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 21 años
Puntos: 0
Problemas con ONBLUR

hola a todos ojala alguien me pueda ayudar sucede que estoy haciuendo un sistema de cotizaciones y en la seccion de productos a cotizar, tengo 2 botones uno pa agregar un porducto y otro pa remover un porducto seleccionado.

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:
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;
}
ojala alguien mempueda ayudar o aconsejar si ve algo aml agradesco de antemano toda la ayuda
Atte
Goomba
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:36.