Retroceder   Foros del Web > Programación para sitios web > Javascript

Respuesta
 
Herramientas Desplegado
Antiguo 28-abr-2008, 19:35   #1 (permalink)
Goomba está en el buen camino
 
Fecha de Ingreso: abril-2003
Mensajes: 160
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
Goomba está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:58.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93