Foros del Web » Programando para Internet » Javascript »

Al cambiar el nombre de la función no responde

Estas en el tema de Al cambiar el nombre de la función no responde en el foro de Javascript en Foros del Web. Hola! Que tal? Bueno pues yo tengo un poco de lio, no entiendo porque me pasa lo siguiente, tengo un formulario que cuando le das ...
  #1 (permalink)  
Antiguo 19/12/2006, 17:15
Avatar de ferrins  
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Al cambiar el nombre de la función no responde

Hola!

Que tal? Bueno pues yo tengo un poco de lio, no entiendo porque me pasa lo siguiente, tengo un formulario que cuando le das a enviar comprueba si todos los campos estan llenos, todo funciona perfectamente, pero me he dado cuenta que si cambio el nombre de la función en el formulario y también en el archivo adjunto donde tengo el codigo, entonces no me valida el formulario!

En el formulario llamo a la función con un onSubmit="return checkarts()" y en el archivo adjunto .js la función es: function checkarts(){} Pero cuando cambio el nombre en ambas partes no funciona...

Que os parece? Es esto normal?

Gracias!!
  #2 (permalink)  
Antiguo 19/12/2006, 17:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Al cambiar el nombre de la función no responde

Hola:

Por lo que dices, debería funcionar, pero veo que no llamas a la función con el formulario como parámetro... no habrás cambiado también otra cosa como el nombre del formulario o el órden...

Con los datos que das es muy difícil ayudar...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 19/12/2006, 17:28
Avatar de ferrins  
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Re: Al cambiar el nombre de la función no responde

Os pongo el código a ver que os parece:

La función:

function checkarts() {
var f1 = document.forms[0];
var wm = "Us heu oblidat les següents dades:\n\r\n";
var noerror = 1;
var t1 = f1.titol;
if (t1.value == "" || t1.value == " ") {
wm += "Manca el títol de l\'article\r\n";
noerror = 0;
}
var t1 = f1.cos_article;
if (t1.value == "" || t1.value == " ") {
wm += "Manca el text de l\'article\r\n";
noerror = 0;
}
var t1 = f1.nom_seccio;
if (t1.value == "" || t1.value == " ") {
wm += "Manca la secció de l\'article\r\n";
noerror = 0;
}
if (noerror == 0) {
alert(wm);
return false;
}
else return true;
}

Y ahora el formulario:

<form method="post" action="insert_art.php" enctype="text/plain" onSubmit="return checkarts()">
<fieldset>
<label>Títol</label>
<input type="text" class="title" name="titol" maxlength="75" size="48"/><br>
<label>Secció</label> <? select_sec_art(); ?><br>
<div style="clear: both; "><label>Text article</label>
<textarea class="body" name="cos_article" rows="10" cols="60"></textarea></div>
<div style="clear:both; "><label>&nbsp;</label><input type="submit" name="Insertar" value="Insertar"></div>
</fieldset></form>
  #4 (permalink)  
Antiguo 19/12/2006, 17:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Al cambiar el nombre de la función no responde

Hola:

Miré unas pocas líneas y veo unas cosillas que podrías mejorar...
Al formulario es preferible ponerle un nombre para referenciarlo y no usar un índice y en las validaciones es mejor pasar como parámetro el propio formulario: onsubmit="return checkarts(this)" usando this como parámetro (si tuvieras más formularios podrías tener problemas) y la definición sería simplificada: function checkarts(f1)

La verdad es que con códigos "mezclados con otros lenguajes" son difícil de interpretar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 12:56.