Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] getElementById

Estas en el tema de getElementById en el foro de Javascript en Foros del Web. Alguien me puede decir por que no valida mas que el input. Nesesito validarlos por getElementById. Código: <script type="text/javascript"> function validar() { miCampoTexto = document.getElementById("input").value; ...
  #1 (permalink)  
Antiguo 25/10/2013, 06:12
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 13 años
Puntos: 1
Pregunta getElementById

Alguien me puede decir por que no valida mas que el input. Nesesito validarlos por getElementById.

Código:
<script type="text/javascript">
    function validar() 
		{
        miCampoTexto = document.getElementById("input").value;

        if (miCampoTexto.length == 0) 
			{
			alert("input vacio")
            return false;
        	}
		else
			{
			alert("input lleno")
        	return true;
			}
		
		indice = document.getElementById("select").selectedIndex;
		if(indice == null || indice == 0) 
			{
			alert ("Select no seleccionado")
			return false
			}
		else
			{
			alert ("Select seleccionado")
			return true
			}

		var a = 0, radioboton = document.getElementsId("radio")
		for(i = 0; i < radioboton.length; i++) 
			{
			if(radioboton.item(i).checked == false) 
				{
				a++;
				}
			}
		if(a == radioboton.length) 
			{
			alert("Radio no seleccionado");
			return false;
			} 
		else 
			{
			alert("Radio seleccionado");
			return true;
			}

		var b = 0, botoncheckbox = document.getElementsById("checkbox")
		for(i = 0; i <botoncheckbox.length; i++) 
			{
			if(botoncheckbox.item(i).checked == false) 
				{
				b++;
				}
			}
		if(b == botoncheckbox.length) 
			{
			alert("Checkbox no seleccionado");
			return false;
			} 
		else 
			{
			alert("Checkbox seleccionado");
			}
    }
</script>
Código HTML:
<form name = "formulariocomponentes" action = "" onsubmit = "return validar()">
    <input type = "text" id = "input" name = "input">
    <br>
    <select id = "select" name = "opciones">
        <option value>Seleccione una opcion</option>
		<option value = "1">Primer valor</option>
		<option value = "2">Segundo valor</option>
		<option value = "3">Tercer valor</option>
        <option value = "4">Cuarto valor</option>
    </select>
    <br>
    <input type = "radio" id = "radio" value = "1">Mexico<br>
    <input type = "radio" id = "radio" value = "2">Brazil<br>
    <input type = "radio" id = "radio" value = "3">España<br>
    <input type = "radio" id = "radio" value = "4">Francia<<br>
    <br>
    <input type = "checkbox" id = "checkbox" value = "1">Primer valor<br>
    <input type = "checkbox" id = "checkbox" value = "2">Segundo valor<br>
    <input type = "checkbox" id = "checkbox" value = "3">Tercer valor<br>
    <br>
    <input type = "submit" value = "Enviar">
</form> 
  #2 (permalink)  
Antiguo 25/10/2013, 08:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: getElementById

Hola:

Debes quitar la palabra mágica "return"...

Te cuento mi sistema para validar varios campos... La cuestión es tener un array vacío con los mensajes de error, y cuando detectamos un error, añadimos al array el mensaje correspondiente a ese error... (todo sin los return...)

Cuando pasas por todos los campos, si el array está vacío es porque no ha habido errores y se puede enviar el formulario, de lo contrario se muestran los mensajes...

if (mensajes.length > 0) {
alert("errores:\n" + mensajes.join("\n"));
return false;//... de otro modo no devolver nada...
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 25/10/2013, 08:36
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 10 meses
Puntos: 53
Respuesta: getElementById

Al momento de retornar algo es como si hicieras un break de la funcion,, por eso solo entra a tu primera validacion ,
Código Javascript:
Ver original
  1. if (miCampoTexto.length == 0)
  2. {
  3. alert("input vacio")
  4. return false;//ESTO ES UN BREAK DE FUNCION
  5. }
  6. else
  7. {
  8. alert("input lleno")
  9. return true;//ESTO ES UN BREAK DE FUNCION
  10. }

para corregirlo utiliza else if

Código Javascript:
Ver original
  1. if (miCampoTexto.length == 0)
  2. {
  3. alert("input vacio")
  4. return false;//ESTO ES UN BREAK DE FUNCION
  5. }
  6. else if(indice == null || indice == 0)
  7. {
  8. }
  9. else if(validacion de radio )
  10. {
  11. //por id tendrias que hacer una funcion ciclica, pero por nombre te dejo un link
  12. http://www.chlinformatica.com/2011/11/como-validar-radio-button-en-javascript/
  13. }
  14. else if(validacion de check )
  15. {
  16. //lo mismo que los radios validar por id tendrias que hacer una funcion ciclica,
  17. //para validar checks en conjunto pueden ser por nombre en comun:
  18. http://www.forosdelweb.com/wiki/Javascript:%C2%BFC%C3%B3mo_puedo_comprobar_si_un_checkbox_est%C3%A1_seleccionado%3F
  19. }
  20. else
  21. {
  22. alert("todo bien")
  23. return true;//ESTO ES UN BREAK DE FUNCION
  24. }
Tambien todo depende que es lo que realmente quieres hacer,, quieres que te vaya indicando en cada elemento si ha sido llenado o no , quieres que al final muestre todos los elementos que no estan correctos, quieres que solo muestre el primer elemento incorrecto ?
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #4 (permalink)  
Antiguo 26/10/2013, 06:42
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 13 años
Puntos: 1
Respuesta: getElementById

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Debes quitar la palabra mágica "return"...

Te cuento mi sistema para validar varios campos... La cuestión es tener un array vacío con los mensajes de error, y cuando detectamos un error, añadimos al array el mensaje correspondiente a ese error... (todo sin los return...)

Cuando pasas por todos los campos, si el array está vacío es porque no ha habido errores y se puede enviar el formulario, de lo contrario se muestran los mensajes...

if (mensajes.length > 0) {
alert("errores:\n" + mensajes.join("\n"));
return false;//... de otro modo no devolver nada...
}

Saludos
Muchas gracias probare agregando el array
  #5 (permalink)  
Antiguo 26/10/2013, 06:45
Avatar de CMushroom  
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 13 años
Puntos: 1
Respuesta: getElementById

Cita:
Iniciado por PIRRUMAN Ver Mensaje
Al momento de retornar algo es como si hicieras un break de la funcion,, por eso solo entra a tu primera validacion ,
Código Javascript:
Ver original
  1. if (miCampoTexto.length == 0)
  2. {
  3. alert("input vacio")
  4. return false;//ESTO ES UN BREAK DE FUNCION
  5. }
  6. else
  7. {
  8. alert("input lleno")
  9. return true;//ESTO ES UN BREAK DE FUNCION
  10. }

para corregirlo utiliza else if

Código Javascript:
Ver original
  1. if (miCampoTexto.length == 0)
  2. {
  3. alert("input vacio")
  4. return false;//ESTO ES UN BREAK DE FUNCION
  5. }
  6. else if(indice == null || indice == 0)
  7. {
  8. }
  9. else if(validacion de radio )
  10. {
  11. //por id tendrias que hacer una funcion ciclica, pero por nombre te dejo un link
  12. http://www.chlinformatica.com/2011/11/como-validar-radio-button-en-javascript/
  13. }
  14. else if(validacion de check )
  15. {
  16. //lo mismo que los radios validar por id tendrias que hacer una funcion ciclica,
  17. //para validar checks en conjunto pueden ser por nombre en comun:
  18. http://www.forosdelweb.com/wiki/Javascript:%C2%BFC%C3%B3mo_puedo_comprobar_si_un_checkbox_est%C3%A1_seleccionado%3F
  19. }
  20. else
  21. {
  22. alert("todo bien")
  23. return true;//ESTO ES UN BREAK DE FUNCION
  24. }
Tambien todo depende que es lo que realmente quieres hacer,, quieres que te vaya indicando en cada elemento si ha sido llenado o no , quieres que al final muestre todos los elementos que no estan correctos, quieres que solo muestre el primer elemento incorrecto ?
Muchas gracias ya estoy arreglandolo lo que nesesito es que una vez hayas presionado el boton te diga cuales campos te faltaron llenar, la otra validacion la hago en php si pasan los datos, esta es solo para indicarte que algun o algunos campos estan vacios.

Última edición por CMushroom; 26/10/2013 a las 07:58

Etiquetas: formulario, getelementbyid, input
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 09:32.