Foros del Web » Programando para Internet » Javascript »

Gran problema

Estas en el tema de Gran problema en el foro de Javascript en Foros del Web. tengo este codigo que solo sin nada funciona bien : Código PHP:      < script >     function  pepe ( total ){     for ( a = 1 ...
  #1 (permalink)  
Antiguo 16/07/2003, 15:48
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Gran problema

tengo este codigo que solo sin nada funciona bien :

Código PHP:
    <script>
    function 
pepe(total){
    for (
a=1;a<5;a++){
    eval(
"document.forms[0].elements[a].disabled=(a<=total)?false:true;")
    
    }
    }
    
</script>



Cajas escribibles:<select 
                              onchange="pepe(this.selectedIndex)"
                            name="nro_tintas"
                              size="1">
                                <option value="" SELECTED>--</option>
                                <option value="1">1</option>
                                <option value="2">2</option>
                                <option value="3">3</option>
                                <option value="4">4</option>
                        </select>
<br><br>
      Caja 1 <input
                   disabled
                  type="text"
                 name="Tinta1">
            <br>
     Caja 2 <input
                 disabled
                type="text"
                 name="Tinta2">
            <br>
      Caja 3 <input
                  disabled
                type="text"
                 name="Tinta3">
            <br>
      Caja 4 <input
                  disabled
                type="text"
                 name="Tinta4">
            <br> 
ahora cuando lo uso por la mitad de un formulario con mas cajas de texto arriba me bloquea los de arriba que pasa
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.

Última edición por dobled; 16/07/2003 a las 15:52
  #2 (permalink)  
Antiguo 16/07/2003, 16:26
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
El problema es que elements[a] te está recorriendo secuencialmente los elementos del formulario.

Tal como lo tienes ahora hay cinco elementos: el select y los cuatro textos. Tu ciclo varía a i entre 1 y 5, es decir, no toma el elemento 0 que debe ser el select y toma cinco textos (tu tienes 4).

Si pones algun elemento antes que el select, debes ajustar tu for() de modo que i varíe justo entre los elementos que quieres recorrer.

Saludos.
  #3 (permalink)  
Antiguo 16/07/2003, 18:01
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
osea que no cacho muy bien---


si el text que quiero que empiese es en 11 en el form cambio en for 0 por 12
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #4 (permalink)  
Antiguo 17/07/2003, 01:25
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Andá! Este código me suena!

Kao (hola jefe!!), en realidad toma 4 si te fijas, va desde el 1 y hasta el número inferior a 5, sumándole 1 cada vez: 1,2,3,4. El cinco no es menor de cinco por lo que termina ahí!

dobled te voy a dar un tirón de orejas! la próxima vez continúa el post que iniciaste. No abras uno nuevo porque la gente no se entera!

Si no quieres estar atento a los números de los elementos pon esto:

<script>
function pepe(total){
for (a=1;a<5;a++){
eval("document.forms[0].Tinta"+a+".disabled=(a<=total)?false:true;")

}
}
</script>



Cajas escribibles:<select
onchange="pepe(this.selectedIndex)"
name="nro_tintas"
size="1">
<option value="" SELECTED>--</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<br><br>
Caja 1 <input
disabled
type="text"
name="Tinta1">
<br>
Caja 2 <input
disabled
type="text"
name="Tinta2">
<br>
Caja 3 <input
disabled
type="text"
name="Tinta3">
<br>
Caja 4 <input
disabled
type="text"
name="Tinta4">
<br>

Un saludo!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 17/07/2003, 15:59
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
KarlanKas

Muchas gracias no se me habia ocurrido


__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
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:16.