Foros del Web » Creando para Internet » HTML »

Problema con Java Script (validar checks)

Estas en el tema de Problema con Java Script (validar checks) en el foro de HTML en Foros del Web. Hola, es unos de mis primeros post, y busque sobre este tema pero no encontré mucho que digamos, por lo que me lleva a abrir ...
  #1 (permalink)  
Antiguo 30/03/2010, 12:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 15 años, 3 meses
Puntos: 0
Mensaje Problema con Java Script (validar checks)

Hola, es unos de mis primeros post, y busque sobre este tema pero no encontré mucho que digamos, por lo que me lleva a abrir este tema con mi situación particular.
Si ya hay algún tema parecido abierto pásenme el link please.
Bueno el problema mío es el siguiente:
Tengo este html que genero con jsp

Código PHP:
<html>
  <
head>
  <
script language="javascript">
  function 
validar(){
        
chk=document.getElementsByName('check[]');
        var 
num=0;
            for (
i=0;chk.length;i++){
              
ele=chk[i];
              if (
ele.checked){
                  
num++;
              }
            }
        if(
num==0){
            
alert('Debe seleccionar al menos un elemento');
        }else{
            
document.f1.action="paginas.jsp";
            
document.f1.submit();
        }
    }
  
</script>
  </head>
  <body>
      <form  name="f1" action="paginas.jsp" method="post">
        Selecciona al menos una opcion:<br><br>
        <input type="checkbox" id="check" name="check"    value="1" onclick="validar()">Opcion1<br>
        <input type="checkbox" id="check" name="check"    value="2" onclick="validar()">Opcion2<br>
        <input type="checkbox" id="check" name="check"    value="3" onclick="validar()">Opcion3<br>
        <br>
        <input name="Nueva" type="image" value="Eliminar Selección" src="http://www.google.com.ar/images/firefox/spraycan_customize.png" align="left">
      </form>
  </body>
</html> 
El cual tiene varios checks, y una imagen para hacer submit del form.
Mi problema es que el código de JS no funciona.
Lo que debería hacer es avisarle al usuario que tiene que seleccionar al menos un check, si el usuario selecciono al menos un check que haga el submit.
Este código como esta no anda, tocándolo un poco lo pude hacer andar, pero por ejemplo cuando no seleccionaba ninguno me aparecía el mensaje correctamente, pero cuando seleccionaba al menos un check me ponía el cartel que tenía que seleccionar al menos un check y cuando le daba en aceptar ahí recién hacia el submit (como que hubiese hecho dos click y me tomara el ultimo click)
  #2 (permalink)  
Antiguo 30/03/2010, 20:08
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: Problema con Java Script (validar checks)

Bueno, es cuestión de conocer un poco más nomás.

Código:
function validar(){
        chk=document.f1.getElementsByName('input');
        var num=0;
            for (i=0;chk.length;i++){
              ele=chk[i];

              if (ele.type.toLowerCase() == 'checkbox'  && ele.checked){
                  num++;
              }
            }
        if(num==0){
            alert('Debe seleccionar al menos un elemento');
        }else{
            document.f1.action="paginas.jsp";
            document.f1.submit();
        }
    }
  </script>

Ves que era un par de cosas nomás?
  #3 (permalink)  
Antiguo 30/03/2010, 22:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema con Java Script (validar checks)

Hola, antes que nada muchisimas gracias por contestar ...
llendo de nuevo al problema, los cambios que tu dices que le haga no me andan (y eso que copie y pegue tal cual todo el codigo tuyo.
ati te anduvo???
mira yo ya lo pude solucionar despues de probar tu codigo no me queria dar por vencido y encontre algo por aqui [URL="www.forosdelweb.com/f13/submit-boton-type-image-408488"]www.forosdelweb.com/f13/submit-boton-type-image-408488[/URL] si bien no esta todo el codigo completo me puse a tratar de completarlo yo por mi cuenta (cosa que me costo un poco porque no se mucho de javascript).
la funcion me quedo algo asi (para todos aquellos que quieren hacerlo):
Código PHP:
    function validar(obj){
        
chk=obj.check;
        var 
num=0;
        for (
i=0;i<chk.length;i++){
          
ele=chk[i];
          if (
ele.checked){
              
num++;
          }
        }
        if(
num==0){
            
alert('Debe seleccionar al menos un elemento');
        }else{
            
obj.submit();
        }
    } 
y lo hice con una imagen (no puse el onsubmit en el form)
Código PHP:
img src="algo.png" alt="Enviar" style="cursor:pointer;" onclick="javascript:validar(f1);" /> 
igualmente muchas gracias por tu preocupacion.

Última edición por nutriax; 30/03/2010 a las 22:57 Razón: no mostaba el link
  #4 (permalink)  
Antiguo 31/03/2010, 00:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Problema con Java Script (validar checks)

Hola:

Si tus checkboxes tienen el name="check", en la validación el name es "check" y no "check[]"... si te interesan los paréntesis para procesar luego el form en el servidor, entonces el nombre debe llevar los corchetes.

Sobre ese tema concreto puedes ver un ejemplo en este tutorial: El abc de los formularios

Y cuando tengas que validar y usar bien los formularios... debe tener un botón submit. La validación del tipo <form onsubmit="return validar(this)", y si quieres usar una imagen, tienes que saber que añade a las variables enviadas, las coordenadas de donde se pinche. Si de todos modos te interesan las imágenes, pueden ponerse dentro de un tag button type="submit".

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 31/03/2010, 07:53
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: Problema con Java Script (validar checks)

Cita:
Iniciado por nutriax Ver Mensaje
Hola, antes que nada muchisimas gracias por contestar ...
llendo de nuevo al problema, los cambios que tu dices que le haga no me andan (y eso que copie y pegue tal cual todo el codigo tuyo.
ati te anduvo???
mira yo ya lo pude solucionar despues de probar tu codigo no me queria dar por vencido y encontre algo por aqui [URL="www.forosdelweb.com/f13/submit-boton-type-image-408488"]www.forosdelweb.com/f13/submit-boton-type-image-408488[/URL] si bien no esta todo el codigo completo me puse a tratar de completarlo yo por mi cuenta (cosa que me costo un poco porque no se mucho de javascript).
la funcion me quedo algo asi (para todos aquellos que quieren hacerlo):
Código PHP:
    function validar(obj){
        
chk=obj.check;var num=0;
        for (
i=0;i<chk.length;i++){
          
ele=chk[i];
          if (
ele.checked){
              
num++;
          }
        }
        if(
num==0){
            
alert('Debe seleccionar al menos un elemento');
        }else{
            
obj.submit();
        }
    } 
y lo hice con una imagen (no puse el onsubmit en el form)
Código PHP:
img src="algo.png" alt="Enviar" style="cursor:pointer;" onclick="javascript:validar(f1);" /> 
igualmente muchas gracias por tu preocupacion.

Pues no, no lo probé, a lo mejor había algo errado por ahi. No debes copiar y pegar códigos, debes entender la idea y modificar tu código, no vaya a ser que tanto el que recomienda como tú hayan cometido aunque sea una sutileza de error al momento de escribir y eso genere los erores.
  #6 (permalink)  
Antiguo 31/03/2010, 08:43
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema con Java Script (validar checks)

Gracias caricatos!!!, tu link parece ser muy importante para gente como yo que no sabe mucho de html y que se pregunta como seria de la forma correcta, y también apoyo tu insistencia en recordar que se tiene que validar en los dos lados (cliente y servidor), después lo analizo con más detenimiento a ese link.
ElJavista, también muchas gracias por los aportes, no lo copie y pegue de una a tu código, sino que vi como lo encaraste y modifique el mío, y como no andaba, supuse que me estaba salteando algún cambio que hiciste y recién ahí lo copie y pegue por las dudas. Pero no te preocupes que soy muy inquieto y me gusta entender las cosas!
Ahora una consulta para cualquiera que pueda saber algo al respecto:
Tengo la duda de si es posible cuando yo valido del lado del servidor y encuentro errores, hay alguna forma (o cual sería la forma correcta de hacerlo) de poder rellenar los campos con los valores que ingreso el usuario (para que este último no tenga que tipiar uno por uno de los campos nuevamente), actualmente a los campos los completo por código del dalo del servidor pasando los parámetros nuevamente a la pagina del formulario.
Por ejemplo:
en la pagina del formulario tengo algo así como:

<input type="text" name="nombre" value="<%php $_GET['nombre']%>"/>

En donde si es la primera vez que entra va a estar vacía, pero sí hizo el submit entonces me va a una página validar.php por ejemplo y en dicha pagina compruebo todos los valores correctos, si hay algo mal redirecciono a la pagina del formulario armando la dirección con los parámetros, por ejemplo:

formulario.php?nombre=<%php $_GET['nombre']%>

Esto es simple y no se tiene que programar mucho cuando es un solo campo pero el problema esta cuando tengo como 10 o 15 campos es mucha programación y me parece que tendría que haber algo que sea más simple, existe algo más simple? cual sería la forma correcta de hacerlo?
  #7 (permalink)  
Antiguo 31/03/2010, 08:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Problema con Java Script (validar checks)

Hola:

Estoy un poco despistado con:

value="<%php $_GET['nombre']%>"

Si es php sería:
value="<?php $_GET['nombre']; ?>"

Si es cosa php, la solución que yo suelo usar es aprovecharme de las variables de sesión:

$_SESSION["get"] = $_GET;

Pero evidentemente se tratará dependiendo del lenguaje que dispongas en tu servidor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 31/03/2010, 09:16
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema con Java Script (validar checks)

sisi, yo me confundí y no puse el ; pero era para dar un ejemplo nomas de como es la forma en que lo soluciono yo, pero en realidad di un ejemplo con php pero estoy programando en jsp (que dentro de todo la idea es la misma que php), peor quería asegurarme si es correcto hacer lo que estoy haciendo actualmente o hay alguna forma de hacerlo más simple.
por ahí creo que vi un ejemplo en donde si el nombre del parámetro que le pasábamos por la url es igual al id del input lo tomaba solo html y le ponía el value con el parámetro que le pasábamos sin necesidad de programar nada.
por ejemplo llamamos a la pagina formulario.php?nombre='pepe' y si existía un input con id nombre el value de ese input es pepe (esto no recuerdo donde lo vi, pero lo había probado y funcionaba, pero ahora no me funciona).
alguien sabe de hacerlo de esta forma???

Etiquetas: checkbox, javascript, seleccionado, validar, formulario
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 22:38.