Foros del Web » Programando para Internet » Javascript »

validar que almenos haya 1campo en el buscador

Estas en el tema de validar que almenos haya 1campo en el buscador en el foro de Javascript en Foros del Web. Hola! me gustaría saber como puedo hacer para que, antes de enviar el formulario, me valide si hay almenos un campo seleccionado/escrito en mi formulario. ...
  #1 (permalink)  
Antiguo 12/11/2007, 06:29
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 8 meses
Puntos: 0
validar que almenos haya 1campo en el buscador

Hola!
me gustaría saber como puedo hacer para que, antes de enviar el formulario, me valide si hay almenos un campo seleccionado/escrito en mi formulario.

yo empezé así, pero no logro sacarlo:

Código HTML:
function validacion() {
contador=0;
if (contador==0){
	valor = document.getElementById("titulo").value;
		if( valor == null || valor.length == 0 || /^\s+$/.test(valor) ) {
 			contador=contador;
                                } 
                                else { 
                                     contador=contador+1;
                                }
              valor2 = document.getElementById("tema").value;
		if( valor2 == null || valor2.length == 0 || /^\s+$/.test(valor) ) {
 			contador=contador;
                                } 
                                else { 
                                     contador=contador+1;
                                }
             .... y así con radio buttons, etc.
}
else {
    return true;
}
}
Pero algo tengo que estar haciendo mal porque simplemente me redirecciona a la página de resultados con TODAS las entradas de la DB.

tengo que hacer un do while? o..?
ya no se que probar!

Gracias por adelantado
  #2 (permalink)  
Antiguo 12/11/2007, 10:40
lpz
 
Fecha de Ingreso: abril-2006
Ubicación: Argentina
Mensajes: 402
Antigüedad: 18 años
Puntos: 2
Re: validar que almenos haya 1campo en el buscador

Hola

Esa funcion la llamas desde donde? Porque quizas te falta algo que ya se posteo en otro thread. En el evento OnSubmit del form haces: onSubmit="return validacion()". Si no hay 1 campo lleno entonces que devuelva false.
  #3 (permalink)  
Antiguo 12/11/2007, 10:57
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: validar que almenos haya 1campo en el buscador

Hola lpz

en el form ya tengo lo de 'return validacion()'
Yo se validar el formulario entero (cuando se trata de ingresar la noticia). me mira si tiene título, si ha seleccionado un select, si tiene un radio button activado...

El problema es que no se como hacer para que me mire, si como mínimo hay un campo rellenado. Si es así, me manda a la siguiente página, sino, quiero que me mande un alert diciendo: tienes que rellenar almenos UN campo.

Y el hecho de que solo queiro un campo, es porque se trata de un buscador de noticias. así que, con un críterio de búsqueda tengo más que suficiente.

Espero haber sido más clara ahora

Gracias de nuevo!
  #4 (permalink)  
Antiguo 12/11/2007, 11:37
lpz
 
Fecha de Ingreso: abril-2006
Ubicación: Argentina
Mensajes: 402
Antigüedad: 18 años
Puntos: 2
Re: validar que almenos haya 1campo en el buscador

Una pregunta, cuando pasa por el else. que se supone que significa? porque para que no te redireccione a la pagina de resultados, la validacion tiene que devolver false.

Algo que haria yo (aunque casi parecido) es en cada campo incrementar y/o decrementar ese contador cuando se detecte algo o este vacio y en validacion devolver false si el contador=1. De esa forma, cualquiera sea el campo, no te redirecciona a la pagina de resultados.
  #5 (permalink)  
Antiguo 12/11/2007, 12:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: validar que almenos haya 1campo en el buscador

Hola setram

¿Puedes poner un ejemplo del formulario que estás usando, para hacer pruebas?

Saludos,
  #6 (permalink)  
Antiguo 12/11/2007, 15:41
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: validar que almenos haya 1campo en el buscador

el formulario es este:

Código HTML:
<form action="buscador_a2.php" method="post" name="form" id="form">
  <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr> 
      <td>titular de la noticia:</td>
      <td>comentario:</td>
    </tr>
    <tr> 
      <td valign="top">
<input name="tit" id="tit" size="40">
      </td>
      <td><textarea name="ing" cols="40" rows="2" wrap="VIRTUAL" id="textarea"></textarea></td>
    </tr>
    <tr> 
      <td>categoria:</td>
      <td>p&uacute;blico:</td>
    </tr>
    <tr> 
      <td><table width="176" height="48" id="menu_categoria">
          <tr> 
            <td width="77"> <input type="radio" name="cat" value="amor">amor</td>
            <td width="83"> <input type="radio" name="cat" value="cultura">
              cultura</td>
          </tr>
          <tr> 
            <td> <input type="radio" name="cat" value="deporte">deporte</td>
            <td> <input type="radio" name="cat" value="dinero">
              dinero</td>
          </tr>
        </table></td>
      <td><table width="243" id="menu_publico">
          <tr> 
            <td width="105"> <input name="pub1" type="checkbox" id="pub1" value="adulto">
              adulto</td>
            <td width="126"> <input name="pub3" type="checkbox" id="pub3" value="ni&ntilde;o">
              niñoo</td>
          </tr>
          <tr> 
            <td> <input name="pub2" type="checkbox" id="pub2" value="joven">
              joven</td>
            <td> <input name="pub4" type="checkbox" id="pub4" value="ancianos">
              ancianos</td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td>importancia: </td>
      <td>&nbsp;</td>
    </tr>
    <tr> 
      <td><select name="imp" id="select2">
          <option value="nada"></option>
          <option value="baja">baja</option>
          <option value="media">media</option>
          <option value="alta">alta</option>
        </select></td>
      <td><input name="Submit2" type="submit" value="buscar" onClick="return validacion()"></td>
    </tr>
  </table>
  </form> 

lpz, lo que no se hacer es eso. Tengo una idea de como debería ser:
si el contador esta en 0, entrar en el if, y mirar campo 1, si esta lleno --> contador=1. Y ya podriá salir del if y enviar en formulario. Sino, pasar por el campo 2, y el 3 y 4...asi succesivamente.

Es así no?
Pero no se como tiene que ser el código

Gracias otra vez

Última edición por setram; 12/11/2007 a las 15:44 Razón: apreté enviar sin acabar el mensaje..
  #7 (permalink)  
Antiguo 13/11/2007, 08:43
lpz
 
Fecha de Ingreso: abril-2006
Ubicación: Argentina
Mensajes: 402
Antigüedad: 18 años
Puntos: 2
Re: validar que almenos haya 1campo en el buscador

Agregue algo a la idea anterior. Cada campo tendria un atributo "estaCompleto" que vale 0 si esta vacio y 1 lo contrario.

Cada input tendria una funcion que se dispararia en el evento onChange.

function verificarValor(campo)
if (campo.value=="")
campo.estaCompleto=0
else
campo.estaCompleto=1

Y esta en el onSubmit del form:

function verificarForm(formulario)

if (!(formulario.campo1.estaCompleto+formulario.campo 2.estaCompleto>=1))
alert("Debe haber al menos un campo lleno")
return false

La idea es ver que la suma de los valores de todos los "estaCompleto" de cada input del form sea >=1 para que pase el submit, sino lo frena con un mensaje de alerta.
Fijate si te sirve y avisame :)

edit: hay una forma de recorrer los elementos del form, que no me lo acuerdo bien ahora, pero te lo digo solo en caso de que no te convenza la idea de ese if.
  #8 (permalink)  
Antiguo 13/11/2007, 11:27
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: validar que almenos haya 1campo en el buscador

Hola setram

Puedes poner así el formulario:

Código:
<form action="buscador_a2.php" method="post" name="form" id="form" onsubmit="return validacion(this)">
...
<input name="Submit2" type="submit" value="buscar" >
Y utilizar este código para validar:

Código PHP:
function validacion(frm) {
  for (
i=0ele frm.elements[i]; i++)
    if (
ele.type=='text' || ele.type=='textarea') {
      if (
ele.value != '') return }
    else if (
ele.type=='radio' || ele.type=='checkbox') {
      if (
ele.checked) return }
    else if (
ele.type=='select-one') {
      if (
ele.selectedIndex != 0) return }
  return 
false;

Saludos,
  #9 (permalink)  
Antiguo 13/11/2007, 12:47
 
Fecha de Ingreso: julio-2007
Mensajes: 63
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: validar que almenos haya 1campo en el buscador

Gracias de nuevo!
Al final utilizé el código de JavierB (simplemente porque era menos código..jeje)
Mi idea era más parecida a la de lpz, pero bueno, ahora ya está hecho.

Gracias por vuestra ayuda! :)
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 23:13.