JavaScript - Problema con Fichero de Funciones y JavaScript

 
Vista:

Problema con Fichero de Funciones y JavaScript

Publicado por Jose (2 intervenciones) el 23/02/2001 10:48:59
Hola amigos,

Tengo un pequeño problema, en mis páginas tengo el siguiente formulario:

<form method="POST" name="form1" action="miprograma.php">

He creado un fichero de funciones muy simple con una función para solicitar confirmación antes de realizar una acción. La función es:function Confirmar(formulario,texto){
if (confirm(texto)){
document.formulario.submit();
}
}

En la página tengo definidó el fichero de funciones de la siguiente forma:
<script language="JavaScript" SRC="functions.js">
</script>

Hasta aquí todo entendido, el problema está en la llamada que yo hago a esa función ya que, no entiendo porque falla. La llamada que yo hago es la siguiente:

<input type="button" value="Comprar" name="comprar" onClick="javascript:Confimar('form1','¿Desea realizar la compra del artículo?')">

Al pulsar el botón me da error en JavaScript.

He probado hacer la llamada con document.forms['form1'], ha recoger los datos en el fichero de funciones con document.forms[formulario] y nada no hay manera.

Si alguien sabe donde puede estar el error le agradecería mucho que me contestase.

Gracias por vuestro interés y vuestros comentarios.
Saludos. Jose L.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con Fichero de Funciones y JavaScript

Publicado por Alejandro (30 intervenciones) el 24/02/2001 23:24:26
Tendría que ver exactamente como has hecho el código, pero según lo que pones hay un error muy claro. Tu función confirmar entiendo que recibe dos parámetros, formulario(que usas para indicar el nombre del formulario que quieres submitir) y texto(un texto que aparezca en el confirm).

Luego haces la llamada:
Confimar('form1','¿Desea realizar la compra del artículo?')

Siendo tu intención que se ejecutase algo como
document.form1.submit();

Pero este es el error, si tú pones
document.formulario.submit(); NO se sustituye
la variable formulario por form1, sino que la función javascript cree que existe un <form> que se llama formulario, y si no lo hay indicará error. Si quieres que se submita el formulario que tú pasas por parámetro tienes que codificarlo con la función eval, es decir:

eval ('document.' + formulario + '.submit()');

De esta forma sí que la variable formulario será sustituida por el parámetro que le indiques y se "evaluará" la instrucción ejecutandose
document.form1.submit();

Si algo no te ha quedado claro te recomiendo que mires el uso de la función eval().

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sigue sin Funcionar

Publicado por Jose (2 intervenciones) el 01/03/2001 09:54:07
Hola Alejandro y demás,

El problema es que nisiquiera me pregunta por el confirm(); simplemente me da Error en JavaScript en mi Navegador y ahí se queda, y eso que he cambiado el eval() como me aconsejaste.

Me parece tan raro y no debería ser así.
Saludos. Jose Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sigue sin Funcionar

Publicado por Alejandro Barderas (30 intervenciones) el 08/03/2001 12:02:03
Hola Jose Luis. Perdona si no he visto tu respuesta pero hace unos días que no miro el foro.
Quizás ya hayas solucionados tu problema, espero que así sea, pero por si no es el caso, según dices, que ni siquiera te hace el confirm(), tiene pinta de que no te está cogiendo bien tu librería:

<script language="JavaScript" SRC="functions.js">
</script>

Yo puedo decirte que uso una librería propia poniendo:

<script src="../utilidades.js"></script>
<script language="JavaScript" >

Y me funciona perfectamente. Prueba a poner lo de language en otra linea y sobre todo a dirigir bien el directorio. Es decir, el src.
Supongo que te sonará lo de direccionamiento relativo y absoluto. Lo normal es usar relativo, de forma que si tu fichero functions.js está en el mismo directorio que tu fichero html tendrías que usar src="functions.js" pero si estuviese en el directorio padre tienes que usar src="../functions.js" o si estuviese en un directorio dentro del padre sería
src="../otrodirectorio/functions.js".

Ójala esto te sirva de ayuda. Aunque puede que sea otra cosa, muchas veces suelen ser tonterías pero que tardas una eternidad en verlas porque continuamente pasas sobre ellas y no las ves (un punto en vez de una coma, un nombre mal puesto, minúsculas en vez de mayúsculas, etc) a mi me ha ocurrido muchas veces.

Un saludo. Alejandro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar