Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/04/2010, 07:12
rufus
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años
Puntos: 1
Respuesta: ayuda con estos codigos mootols !!!

ahora tengo asi el codigo me sigue sin funcionar os lo pongo para que me digais los que entendais de javascript que estoy haciendo mal:

procesar.js:

Código:
/**
 * @author Administrador
 */
function mostrar(){
   var MiPopup = new Class({
    initialize: function(miHtml,ancho,alto,titulo){
    this.titulo=titulo;
    this.tamanoBody = window.getScrollSize();
    this.posScroll = window.getScroll();
    this.espacioDisponibleVentana = window.getSize();
    this.capaSombra = new Element("div", {'id': 'capasombra', 'style': 'width: ' + this.tamanoBody.x + 'px; height: ' + this.tamanoBody.y + 'px; ' });
    this.capaSombra.inject(document.body);
    var myFx = new Fx.Tween(this.capaSombra,{'duration': 300});
    myFx.start('opacity',0,0.8);

    this.contenido = new Element("div", {'id': 'contenidopopup'});
    this.contenido.set('html', "<div class="cuerpotextopopup">" + miHtml + "</div>");
    var titulo = new Element("div", {'id': 'titulopopup'});
    titulo.set('html', this.titulo);
    var cerrar = new Element("div", {'id': 'cerrarpopup'});
    cerrar.addEvent('click', function(){
    this.cerrar();
    }.bind(this));
    cerrar.inject(titulo,'top');
    titulo.inject(this.contenido,'top');

    this.capaPopup = new Element("div", {'id': 'capapopup', 'style': 'margin-left:-' + ancho/2 +'px; top:' + (this.posScroll.y + (this.espacioDisponibleVentana.y/2) - (alto/2)-15) +'px'});
    this.capaPopup.inject(this.capaSombra,'after');

    var myFx2 = new Fx.Tween(this.capaPopup,{'duration': 700});
    myFx2.start('width',4,ancho);
    myFx2.addEvent('complete', function(){
    var myFx3 = new Fx.Tween(this.capaPopup,{'duration': 700});
    myFx3.start('height',4,alto+30);
    myFx3.addEvent('complete', function(){
    this.contenido.inject(this.capaPopup);
    this.contenido.setStyle('opacity', 0);
    this.contenido.setStyle('display', 'block');
    var myFx4 = new Fx.Tween(this.contenido,{'duration': 600});
    myFx4.start('opacity',0,1);
    }.bind(this));
    }.bind(this));

    this.capaSombra.addEvent('click', function(){
    this.cerrar();
    }.bind(this)
    );
    },

    cerrar: function(){
    var myFx = new Fx.Tween(this.capaPopup,{'duration': 500});
    myFx.start('opacity',1,0);
    myFx.addEvent('complete', function(){
    var myFx2 = new Fx.Tween(this.capaSombra,{'duration': 500});
    myFx2.start('opacity',0.8,0);
    myFx2.addEvent('complete', function(){
    this.capaSombra.destroy();
    this.capaPopup.destroy();
    }.bind(this));
    }.bind(this));
    }
    });
	
	window.addEvent("domready", function(){
$("popup1").addEvent("click", function(e){
      e.stop();
      var htmlPopup = "<b>Hola amigos!</b>,<p>Esto es una prueba de un popup DHTML con la típica capa de sombra!</p><p>Podríamos hacerlo fácilmente con Mootools, aunque este script he de aceptar que podría mejorarse.";
      new MiPopup(htmlPopup, 400, 160, "Primer Popup desde un enlace");
	  }
  );
   
 

function revisar(miFormu) {
	if(miFormu.nick.value.length < 3) {
		alert('El nick debe contener por lo mínimo 3 caractéres.') ;
		return false ;
	}
	if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(miFormu.correo.value)) {
		alert('Debes poner un email válido.') ;
		return false ;
	}
	if(miFormu.asunto.value.length < 3) {
		alert('El asunto debe contener por lo mínimo 3 caractéres.') ;
		return false ;
	}
	if(miFormu.comentarios.value.length <3) {
		alert('El comentario debe contener por lo mínimo 3 caractéres.') ;
		return false ;
	}
	
else{
mostrar();
return false;
	}
}

como veis meto en una funcion(mostrar()) el codigo mootols para el popup y lo enlazo con el script de control del formulario web.......dentro del html del formulario llamo asi a la funcion revisar(miFormu):

Código:
	<input name="submit" type="submit"  id="popup1" value="Enviar" onclick="revisar(miFormu);"/>
pero nada que no me funciona por favor alguien que me heche una mano (o dos)