Foros del Web » Programando para Internet » Javascript »

Problema: Creación de Objetos (con Template)

Estas en el tema de Problema: Creación de Objetos (con Template) en el foro de Javascript en Foros del Web. SOLUCIONADO Me encuentro estancado en la siguiente situación: Dispongo de un archivo .html (dispone de un formulario y una funcion en JS) y de un ...
  #1 (permalink)  
Antiguo 25/10/2007, 04:22
 
Fecha de Ingreso: mayo-2007
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
Busqueda Problema: Creación de Objetos (con Template)

SOLUCIONADO

Me encuentro estancado en la siguiente situación:

Dispongo de un archivo .html (dispone de un formulario y una funcion en JS) y de un segundo archivo .js (que es donde defino el template y el método del objeto que quiero crear)

El caso es que estoy debugando el script con el Firebug y he localizado el error (o almenos uno de ellos) en el *.html, concretamente en el lugar donde intento crear el objeto ShippingInfo.

ShippingInfo = new ShippingInfo(DestinationAddress,ShippingType,Recei verName,ReceiverEmail);

Se trata de un ejercicio bastante sencillo, con el que pretendía intentar comprender el funcionamiento de la creación de objetos en JS mediante templates, pero como veis, me he quedado estancado :P

A ver si alguien consigue hecharme un cable.

Gracias de antemano,

*.html

Código:
<HTML>
<HEAD>
	<SCRIPT LANGUAGE="JavaScript" type="text/javascript" src="myOwnJavaScript.js">
	</SCRIPT>
	<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
		<!--
		var ShippingInfo;

		function checkInfo(){
			var cname = Form1.ReceiverName.value.match("Receiver");
			var cemail = Form1.ReceiverEmail.value.match("@");
			var DestinationAddress = Form1.ShippingDestination.value;
			var ShippingType = Form1.ShippingType.value;
			if(cname != null && cemail != null && DestinationAddress != "-- Select --" && ShippingType != "-- Select --"){
				var ReceiverName = Form1.ReceiverName.value;
				var ReceiverEmail = Form1.ReceiverEmail.value;
				ShippingInfo = new ShippingInfo(DestinationAddress,ShippingType,ReceiverName,ReceiverEmail);
				document.write("lala");
			}
		}
		//-->
	</SCRIPT>
	<TITLE>MyOwnJavaScript</TITLE>
</HEAD>
<BODY>
	<FORM name="Form1" onSubmit="checkInfo()">
		<SELECT id="ShippingDestination">
			<OPTION>-- Select --</OPTION>
			<OPTION>Boston</OPTION>
			<OPTION>Seoul</OPTION>
		</SELECT>
		<BR><BR>
		<SELECT id="ShippingType">
				<OPTION>-- Select --</OPTION>
				<OPTION>Express delivery</OPTION>
				<OPTION>Standard delivery</OPTION>
		</SELECT>
		<BR><BR>
		<INPUT id="ReceiverName" type="textfield">
		<BR><BR>
		<INPUT id="ReceiverEmail" type="textfield">
		<BR><BR>
		<INPUT type="Submit" name="Button1" value="Submit">
	<DIV id="myOwndivElement">
	</DIV>
	</FORM>
</BODY>
</HTML>

*.js


Código:
function ShippingInfo(DestinationAddress,ShippingType,ReceiverName,ReceiverEmail){
	this.DestinationAddress = DestinationAddress;
	this.ShippingType = ShippingType;
	this.ReceiverName = ReceiverName;
	this.ReceiverEmail = ReceiverEmail;
}

function int GetShippingCost(){
	if(DestinationAddress == "Boston"){
		if(ShippingType == "Standard delivery"){
			return(100);
		}else{
			return(200);
		}
	}else{
		if(ShippingType == "Standard delivery"){
			return(500);
		}else{
			return(1000);		
		}
	}
}

Última edición por Efernand; 26/10/2007 a las 01:23 Razón: SOLUCIONADO
  #2 (permalink)  
Antiguo 25/10/2007, 10:54
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Re: Problema: Creación de Objetos (con Template)

Prueba a ponerle otro nombre al constructor. Que el nombre de la variable no sea el mismo.

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 25/10/2007, 12:45
 
Fecha de Ingreso: mayo-2007
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Problema: Creación de Objetos (con Template)

He probado llamando a la variable sinfo en vez de ShippingInfo para evitar confusiones al interprete... pero no hay manera, el problema persiste.

Gracies de todas formas :P tocará seguir probando ^^
  #4 (permalink)  
Antiguo 25/10/2007, 14:13
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 20 años, 4 meses
Puntos: 5
Re: Problema: Creación de Objetos (con Template)

A ver Efernand, he probado tu codigo y el error que me muestra es el siguiente:

Código:
Missing ( before formal parameters
function int GetShippingCost()
Me gustaria saber que es lo que hace tu script cuando funciona correctamente..

Si nos cuentas un poco mas de lo que quieres, creo que te ira mejor..

Un saludo!
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>
  #5 (permalink)  
Antiguo 26/10/2007, 00:58
 
Fecha de Ingreso: mayo-2007
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Problema: Creación de Objetos (con Template)

Lo que debería hacer es.... una vez hagamos click en el botón Submit, nos verificará una chorrada en el form y en el caso de que sea correcto nos tendría que crear un objeto ShippingInfo y luego mediante su método GetShippingCost() devolvernos el coste.

Es un ejercicio muy sencillo con el único objetivo de practicar la creación de objetos con templates. Digo esto para que no nos pongamos a debatir sobre la eficiencia del verificado u otros aspectos del ejercicio que en este caso no son relevantes :P jeje

Muchas gracias a los que os estais tomando la molestia de hechar un ojo a mi problema

SOLUCIONADO: El problema residia, como dijo Karlankas, en que el nombre de la variable y el del objeto que iva a crear eran los mismos, una vez hechas unas modificaciones.... no me di cuenta que habia eliminado del archivo *.js las variables que luego utilizaba en GetSgippingCost() de ahí que saltase el error en esa función. Muchas gracias a los 2 ;)

Última edición por Efernand; 26/10/2007 a las 01:25 Razón: SOLUCIONADO
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 18:42.