Foros del Web » Programando para Internet » Javascript »

validar un objeto creado

Estas en el tema de validar un objeto creado en el foro de Javascript en Foros del Web. hola disculpen tanta ignorancia de mi parte, tengo una pagina que trae una serie de registros de base de datos, estos registro poseen cada uno ...
  #1 (permalink)  
Antiguo 06/01/2007, 20:55
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 18 años, 7 meses
Puntos: 0
validar un objeto creado

hola disculpen tanta ignorancia de mi parte, tengo una pagina que trae una serie de registros de base de datos, estos registro poseen cada uno un radio button creado con php, el problema es que se tiene que seleccionar un registro (con el radio respectivo) para realizar el envio del formulario, pero no lo hace he aqui el codigo para ver si alguien se percata del problema, de antemano gracias...

<?php echo '<input type="radio" id="rb'.$row.'" name=cid[] value="'.$row['id'].'" />'?>
donde id es el valor que necesito enviar con el radio...

<input name="Submit" type="submit" class="Estilo27" onclick="validar()" value="Procesar" />


<SCRIPT LANGUAGE="JavaScript">
function validar() {
var marcado = "no";
with (document.form1){
for ( var i = 0; i < cid[].length; i++ ) {
if ( cid[i].checked ) {
return true;
}
}
if ( marcado == "no" ){
window.alert("Debe marcar su registro" ) ;
}
}
}
</SCRIPT>
__________________
Lo poco que sé se lo debo a mi ignorancia....
  #2 (permalink)  
Antiguo 06/01/2007, 23:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Re: validar un objeto creado

Hola:

Parece que referencias mal los elementos... si usas los cochetes vacíos en el nombre, así deben estar en la referencia... tal vez sea mejor no usar with (o usar nombres sin corchetes, pero supongo que tu CGI te lo requiere...)

Prueba así:

function validar(f) {
var valida = false;
for (var i = 0; total = f["cid[]"].length; i < total; i ++)
valida = (valida || f["cid[]"][i].checked);
if (!valida) window.alert("Debe marcar su registro");
return valida;
}

y en el tag form (la validación debe estar aquí):

onsubmit="return validar(this)"

Más o menos deben ser de este tipo las validaciones con javascript... asociando la función validadora al submit del form, que la función validadora devuelva true/false (true = pasa la validación y se envía el formulario; false = cancela el envío)

Pruébalo y nos cuentas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 07/01/2007, 07:12
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: validar un objeto creado

gracias por tu tiempo y dedicacion caricatos pero no me funciono igual manda el formulario y no advierte nada...
__________________
Lo poco que sé se lo debo a mi ignorancia....
  #4 (permalink)  
Antiguo 07/01/2007, 15:33
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: validar un objeto creado

disculpen tanta insistencia pero alguien sabe alguna otra manera estoy algo preocupado....
__________________
Lo poco que sé se lo debo a mi ignorancia....
  #5 (permalink)  
Antiguo 07/01/2007, 16:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Re: validar un objeto creado

Hola:

En la función "validar" se me coló un punto y coma por una coma:

for (var i = 0, total = f["cid[]"].length; i < total; i ++)

Vuelve a pribarlo porque el código y la explicación valen.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 07/01/2007, 19:26
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: validar un objeto creado

gracias caricatos, el codigo funcionó perfecto lo unico es que lo entiendo poco, pero estoy muy agradecido por tu tiempo y conocimientos para con este principiante, saludos desde venezuela y gracas nuevamente...
__________________
Lo poco que sé se lo debo a mi ignorancia....
  #7 (permalink)  
Antiguo 08/01/2007, 01:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Re: validar un objeto creado

Hola:

Trataré de explicar lo esencial del script...

Por lo pronto el tema de las validaciones, son correctas si se asocia al submit del form... y lo de pasarle el propio formulario como parámetro es una práctica muy recomendable porque tienes así un código reutilizable entre otras virtudes... y eso se consigue con <form onsubmit="return validar(this)"...
Importantísimo el return, sino no recibirá nada y el formulario se enviará... y eso también debe complementarse con que la validación devuelva valores (importantísimo que sea true/false)... y aún más, se pueden unir más validaciónes asociándolas con el operador AND -Y lógico- (&&)... pero este dato no se cumple en este caso concreto, así que no voy a explayarme...
Bueno... ahora el código:
Inicializamos a false una variable que actualizaremos con la operación OR -Ó lógico- (||) de la misma variable y los datos del formulario que queremos que al menos 1 esté activo (checked)...
Si la variable está false y se hace la operación OR con false el resultado es false y el valor de la variable sigue false; por otro lado si la operación se hace con true, devuelve true, y así queda la variable... y si llegase a operar con más datos false, no cambiaría de valor...

Ahora el bucle:
for (var i = 0, total = f["cid[]"].length; i < total; i ++)
se inicializa con i = 0; i total = la longitud del array... ¿porqué f["cid[]"]...
El nombre es "cid[]" con la pareja de corchetes vacía... si bien en php eso indica que se trata de un array, con javascript solo es el nombre de una variable y es un dato que no podemos referenciar de otra manera (con esos corchetes)... y luego al tratarse de un array la longitud se obtiene con la propiedad length...

Luego valida termina el bucle con false si no ha operado con ningún true (checked) por eso la línea if (!valida)

Por último devolvemos el valor acumulado de valida.

Si no entiendes algo concreto, dilo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 09/01/2007, 09:35
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: validar un objeto creado

gracias!!!... mejor imposible quisiera tener una porcion muy pequeña de tus conocimientos, estoy muy complacido de que dedicaras parte de tu tiempo a explicarme el codigo a este novato, personas con tu conviccion hacen falta en este mundo, saludos y gracias nuevamente...
__________________
Lo poco que sé se lo debo a mi ignorancia....
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 01:59.