Foros del Web » Programando para Internet » Javascript »

Concatenar nombre mas indice para comprobar un campo

Estas en el tema de Concatenar nombre mas indice para comprobar un campo en el foro de Javascript en Foros del Web. Hola, Estoy usando el siguiente codigo para comprobar que los campos de un formulario no están vacíos: Código: if(!check_empty(document.formulario.nombre+i.value)){ validity = false; alert('Por favor, introduzca ...
  #1 (permalink)  
Antiguo 22/07/2009, 10:12
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Concatenar nombre mas indice para comprobar un campo

Hola,

Estoy usando el siguiente codigo para comprobar que los campos de un formulario no están vacíos:
Código:
if(!check_empty(document.formulario.nombre+i.value)){
			validity = false; alert('Por favor, introduzca su nombre.'); 
			window.document.formulario.nombre+i.focus();
			return(false);
		}
Me devuelve false si no está lleno el campo, funciona correctemente para campos con el nombre fijo, es decir los que se llaman nombre, apellidos,...

Lo que estoy intentando hacer es con un for que se repita tantas veces como sea necesario y me compruebe todos los campos para validar que ninguno está vacio.

El indice que sigue el for es la variable i, por eso he probado poniendo "nombre+i", pero no funciona.
Saldrá una lista con campos de texto llamados: nombre1, nombre2, nombre3,... (de forma variable) y necesito que compruebe que ninguno está vacío.

¿Como podría hacerlo?

Gracias de antemano.
  #2 (permalink)  
Antiguo 22/07/2009, 10:23
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Concatenar nombre mas indice para comprobar un campo

Hola .. con este codigo puedes recorrer todos los elementos de la ventana

Código PHP:
for (i=0ele=document.forms[0].elements[i]; i++) {
    
campos += "&"ele.name "=" ele.value;

el unico requisito es que tiene que toner un form con cualquier nombre que contenga todos los campos

de todas maneras lo mejor es comprobar los campos 1 por uno para poder poner un mensaje adecuado para cada caso ....

Otra cosa si quieres comprobar si el campo esta vacio puedes preguntar

Código PHP:
if( document.getElementById("fc_solicitud").value =="") { 
        
error true 
        
msg_error += "- Debe ingresar una fecha de solicitud\n"

y al final preguntar si error es = TRUE entonces tiro todos los mensajes de error juntos y salgo de la funcion con un "return false"



Saludos
  #3 (permalink)  
Antiguo 23/07/2009, 04:48
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Respuesta: Concatenar nombre mas indice para comprobar un campo

puff no lo he entendido muy bien, lo siento...

Yo tengo los avisos personalizados y para cada campo por separado, pero no quiero que se chequeen todos los campos, solo los que yo ponga en un for, al cual le paso yo el numero de campos a revisar:

Código:
for (i=1; i<=numcampos; i++){
		//Comprobamos el nombre
		if(!check_empty(document.formulario.nombre+i.value)){
			validity = false; alert('Por favor, introduzca su nombre.'); 
			window.document.formulario.nombre+i.focus();
			return(false);
		}
		
		//Comprobamos los apellidos
		if(!check_empty(document.formulario.apellidos+i.value)){
			validity = false; alert('Por favor, introduzca su apellidos.'); 
			window.document.formulario.apellidos+i.focus();
			return(false);		
		}
}
Este sería el código que uso. ¿como puedo ponerlo en este codigo?

Muchas Gracias
  #4 (permalink)  
Antiguo 23/07/2009, 05:45
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Concatenar nombre mas indice para comprobar un campo

Hola

Entiendo que los campos se llaman

nombre1, apellido1, nombre2, ....

Prueba así

document.getElementById("nombre"+i).value

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 23/07/2009, 07:28
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Concatenar nombre mas indice para comprobar un campo

Seria algo asi ... lo voy a probar y actualizo el post

Código PHP:
var nm_campo_uno 'nombre'+i;
var 
nm_campo_dos 'apellidos'+i;

for (
i=1i<=numcamposi++){
        
//Comprobamos el nombre
                                
nm_campo_uno 'nombre'+i;
                                
nm_campo_dos 'apellidos'+i;

        if(
document.getElementById(nm_campo_uno).value == ""){
                                                
alert('Por favor, introduzca su nombre.'); 
            
document.getElementById(nm_campo_uno).focus();
            return(
false);
        }
        
        
//Comprobamos los apellidos
        
if(document.getElementById(nm_campo_dos).value == ""){
                                                
alert('Por favor, introduzca sus apellidos.'); 
            
document.getElementById(nm_campo_dos).focus();
            return(
false);        
        }

  #6 (permalink)  
Antiguo 23/07/2009, 07:44
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Concatenar nombre mas indice para comprobar un campo

Ya mi amigo ...hice una pagina completa y funcionando al 100% .... pegala en un nuevo php y listo te va a funcionar altiro....

Código PHP:
<? 
    $nr_campos 
5;
?>
<table border="1" align="center">
<? for($ind 0$ind <= $nr_campos;$ind++){?>
<tr>
<td nowrap="nowrap">
Nombre 
<input type="text" name="nombre<?=$ind?>" id="nombre<?=$ind?>" /></td>
<td nowrap="nowrap">Apellido 
  <input type="text" name="apellidos<?=$ind?>" id="apellidos<?=$ind?>"  /></td>
</tr>
<? ?>
</table>

<div align="center">
  <input type="button" name="Submit" value="Validar Campos" onclick="validar();" />
  
  <script> 
</script>
  <br />
  Chumisiado Soft.
  <script>function validar(){

    var numcampos = <?=$nr_campos?>;
    var nm_campo_uno = '';
    var nm_campo_dos = '';
    
    for (i=0; i<=numcampos; i++){
            //Comprobamos el nombre
            nm_campo_uno = 'nombre'+i;
            nm_campo_dos = 'apellidos'+i;
    
            if(document.getElementById(nm_campo_uno).value == ""){
                                                    alert('Por favor, introduzca su nombre.'); 
                document.getElementById(nm_campo_uno).focus();
                return(false);
            }
            
            //Comprobamos los apellidos
            if(document.getElementById(nm_campo_dos).value == ""){
                                                    alert('Por favor, introduzca sus apellidos.'); 
                document.getElementById(nm_campo_dos).focus();
                return(false);        
            }
    }

}
</script>  
  
</div>
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 17:58.