Foros del Web » Programando para Internet » Javascript »

No consigo recoger nombre de formulario.

Estas en el tema de No consigo recoger nombre de formulario. en el foro de Javascript en Foros del Web. Hola a todos. Tengo el siguiente código que comprueba si un input está vacío: function formCliente(){ if(document.cliente.nombre.value==""){ alert('Introduce un nombre.') document.Cliente.nombre.focus() return 0; } } ...
  #1 (permalink)  
Antiguo 23/10/2007, 02:54
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años, 6 meses
Puntos: 2
No consigo recoger nombre de formulario.

Hola a todos.

Tengo el siguiente código que comprueba si un input está vacío:

function formCliente(){
if(document.cliente.nombre.value==""){
alert('Introduce un nombre.')
document.Cliente.nombre.focus()
return 0;
} }

y en el formulario:

<SCRIPT src="js/formCliente.js"></SCRIPT>
<FORM method="POST" name="Cliente" action="resultModificaCliente.php">
<TABLE id="ficha" border="1">
<TR>
<TD id="nom_ficha">Nombre</TD>
<TD><INPUT type="text" name="nombre" size="50" value="<?php echo $r["nombre"]; ?>"></TD>
</TR>
<TR><INPUT type="button" name="modificar" value="Modificar" onclick="formCliente();">
</TD>
</TR>
</TABLE>
</FORM>

Esto funciona perfectamente. Lo que ocurre es que me gustaría poder aprovechar el archivo formCliente.js con otro formulario y para ello tendría que recoger con javascript el nombre del formulario.

He probado poniendo en el "button" onclick="formCliente(this.form)" y luego en la función de js la variable que recoja el nombre. De este modo:

function formCliente(form){
if(document.form.nombre.value==""){
alert('Introduce un nombre.')
document.Cliente.nombre.focus()
return 0;
} }

Pero esto no funciona.

¿No es posbile recoger el nombre del formulario en un campo?.
__________________
------
Saludos.
  #2 (permalink)  
Antiguo 23/10/2007, 03:56
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: No consigo recoger nombre de formulario.

Haz esto:
Código:
<SCRIPT src="js/formCliente.js"></SCRIPT>
<FORM method="POST" name="Cliente" onSubmit="return formCliente(this)" action="resultModificaCliente.php">
<TABLE id="ficha" border="1">
<TR>
<TD id="nom_ficha">Nombre</TD>
<TD><INPUT type="text" name="nombre" size="50" value="<?php echo $r["nombre"]; ?>"></TD>
</TR>
<TR><INPUT type="submit" name="modificar" value="Modificar" >
</TD>
</TR>
</TABLE>
</FORM>
Y en el js:
Código:
function formCliente(forma){
if(forma['nombre'].value==""){
alert('Introduce un nombre.')
forma['nombre'].focus()
return false;
} }
Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 23/10/2007, 04:42
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: No consigo recoger nombre de formulario.

Gracias, pero eso no me sirve.

El boton que ejecuta el submit es del tipo button, precisamente para evitar que se ejecute el formulario antes de ejecutar las funciones que tengo en js.

Es decir, lo que trato es de que js compruebe los campos, con unas funciones y luego se ejecute el submit().

Pego todo el código del js.

Cita:
function formCliente(){
if(document.Cliente.nombre.value==""){
alert('Introduce un nombre.')
document.Cliente.nombre.focus()
return 0;
}

if(document.Cliente.direccion.value==""){
alert('Introduce una dirección.')
document.Cliente.direccion.focus()
return 0;
}

if(document.Cliente.cod_post.value==""){
alert('Introduce un codigo postal.')
document.Cliente.cod_post.focus()
return 0;
} else {
if(document.Cliente.cod_post.value.length<5){
alert('La longitud del codigo postal no es adecuada.');
document.Cliente.cod_post.focus();
return 0;
}else {
var cod= document.Cliente.cod_post.value;
if(isNaN(cod)){
alert('El valor introducido debe ser un número.');
document.Cliente.cod_post.focus();
return 0;
}
}
}

if(document.Cliente.poblacion.value==""){
alert('Introduce una poblacion.')
document.Cliente.poblacion.focus()
return 0;
}

if(document.Cliente.provincia.value==""){
alert('Introduce una provincia.')
document.Cliente.provincia.focus()
return 0;
}

if(document.Cliente.cif.value==""){
alert('Introduce un CIF.')
document.Cliente.cif.focus()
return 0;
} else {
if(document.Cliente.cif.value.length<9){
alert('La longitud del CIF no es correcta.')
document.Cliente.cif.focus();
return 0;
}
}
document.Cliente.submit()
}
Creo que hay alguna manera de poder recoger dentro de un input el nombre del formulario, pero no lo recuerdo.

Gracias de todos modos.
__________________
------
Saludos.
  #4 (permalink)  
Antiguo 23/10/2007, 04:45
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: No consigo recoger nombre de formulario.

Te ruego que no prejuzgues mi pobre solución y la pruebes antes de decir que no funciona. Muchas gracias!

Y cambia los "document.Cliente" por "forma" y quita el submit del final de la function.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 23/10/2007, 04:56
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: No consigo recoger nombre de formulario.

Cita:
Iniciado por KarlanKas Ver Mensaje
Te ruego que no prejuzgues mi pobre solución y la pruebes antes de decir que no funciona. Muchas gracias!

Y cambia los "document.Cliente" por "forma" y quita el submit del final de la function.
No me mal interpretes. Lo he probado y hace lo que dices, lo que ocurre, es que siempre ejecuta el submit.

Es decir, si el campo "nombre" está vacio sale el alert, pero al pulsar aceptar ejecuta el formulario.

Insisto en que gracias por la ayuda.

Pero yo creo, aunque no recuerdo, que existe algún modo en poder recoger el nombre del formulario desde un input.
__________________
------
Saludos.
  #6 (permalink)  
Antiguo 23/10/2007, 05:33
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: No consigo recoger nombre de formulario.

Has modificado la etiqueta form como te he puesto?

<FORM method="POST" name="Cliente" onSubmit="return formCliente(this)" action="resultModificaCliente.php">

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 23/10/2007, 05:35
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: No consigo recoger nombre de formulario.

Si sigues queriéndolo hacer a tu manera, se puede recoger el name de un formulario desde un input así:

<input type="button" onclick="alert(this.form.name)" value="Saber nombre del formulario" />
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 23/10/2007, 06:32
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: No consigo recoger nombre de formulario.

Cita:
Iniciado por KarlanKas Ver Mensaje
Si sigues queriéndolo hacer a tu manera, se puede recoger el name de un formulario desde un input así:

<input type="button" onclick="alert(this.form.name)" value="Saber nombre del formulario" />
Estupendo, gracias.

Pero luego al intentar recoger ese dato en la funcion js, no funciona.

Cita:
function formCliente(valor){
if(document.valor.nombre.value==""){
alert('Introduce un nombre.')
document.valor.nombre.focus()
return 0;
}
document.valor.submit()
}
Parece ser que no lo recoge.

He probando poniendo como tu me has indicado antes (formulario['campo']) y el resultado es el mismo.

Este es el boton:
Cita:
<INPUT type="button" name="aceptar" value="Crear" onclick="formCliente(this.form.name)">
Gracias.
__________________
------
Saludos.
  #9 (permalink)  
Antiguo 23/10/2007, 06:37
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: No consigo recoger nombre de formulario.

Ponlo así:

function formCliente(valor){
if(document.forms[valor].nombre.value==""){
alert('Introduce un nombre.')
document.forms[valor].nombre.focus()
return 0;
}
document.forms[valor].submit()
}

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #10 (permalink)  
Antiguo 23/10/2007, 09:03
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: No consigo recoger nombre de formulario.

Cita:
Iniciado por KarlanKas Ver Mensaje
Ponlo así:

function formCliente(valor){
if(document.forms[valor].nombre.value==""){
alert('Introduce un nombre.')
document.forms[valor].nombre.focus()
return 0;
}
document.forms[valor].submit()
}

Ahora si.

Gracias, por todo.
__________________
------
Saludos.
  #11 (permalink)  
Antiguo 23/10/2007, 09:08
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: No consigo recoger nombre de formulario.

De nada, cuando quieras aprender a hacer validadores de formulario menos engorrosos avisa!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #12 (permalink)  
Antiguo 23/10/2007, 09:18
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: No consigo recoger nombre de formulario.

Cita:
Iniciado por KarlanKas Ver Mensaje
De nada, cuando quieras aprender a hacer validadores de formulario menos engorrosos avisa!
Hombre, pues toda sugerencia es buena.

Había pensado de utilizar este modo de validar un formulario, pues no se ejecuta el submit y de ese modo se conservan los datos introducidos.

Pero bueno, si tienes alguna sugerencia, bienvenida sea.

Saludos
__________________
------
Saludos.
  #13 (permalink)  
Antiguo 23/10/2007, 09:24
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: No consigo recoger nombre de formulario.

No ves que en tu validador se repite demasiadas veces la comparación

if(document.formulario.campo.value=""){
alert("Está mal")
return false;
}
?

Se podría reducir bastante usando arrays. En realidad no haría falta ni hacer un array ya que javascript ya hace una matriz con todos los elementos de un formulario.

Si encuentro un momento te hago un ejemplo.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #14 (permalink)  
Antiguo 23/10/2007, 09:27
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: No consigo recoger nombre de formulario.

Cita:
Iniciado por KarlanKas Ver Mensaje
No ves que en tu validador se repite demasiadas veces la comparación

if(document.formulario.campo.value=""){
alert("Está mal")
return false;
}
?

Se podría reducir bastante usando arrays. En realidad no haría falta ni hacer un array ya que javascript ya hace una matriz con todos los elementos de un formulario.

Si encuentro un momento te hago un ejemplo.
Gracias.
__________________
------
Saludos.
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:33.