Foros del Web » Programando para Internet » Javascript »

Select + textbox

Estas en el tema de Select + textbox en el foro de Javascript en Foros del Web. Como hago lo Sgte:::: Tengo un seletc con 1 2 3 4 y 4 textfield mas abajo al seleccionar 2 se activen 2 textxfield y ...
  #1 (permalink)  
Antiguo 05/06/2003, 09:07
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
Select + textbox

Como hago lo Sgte::::

Tengo un seletc con
1
2
3
4

y 4 textfield mas abajo

al seleccionar 2 se activen 2 textxfield y asi para los demas numeros...
__________________
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.
  #2 (permalink)  
Antiguo 05/06/2003, 10:13
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
Prueba con esto:

Código:
<html>
<head>
	<script>
	function pepe(total){total+=1
	for (a=1;a<5;a++){
	eval("document.forms[0].elements[a].disabled=(a<=total)?false:true;")
	
	}
	}
	</script>
	<style> form,input,select{font:normal 10px/15px verdana}</style>
</head>

<body>
<form action="javascript:alert('enviando')"
      name="formulario"
      id="formulario">
	  Cajas escribibles:<select onchange="pepe(this.selectedIndex)" name="primero"
	          size="1">
		<option value="1" SELECTED>1</option>
		<option value="2">2</option>
		<option value="3">3</option>
		<option value="4">4</option>
</select><br><br>
	  Caja 1 <input type="text"
	         name="1"><br>
	 Caja 2 <input type="text"
	         name="2"><br>
	  Caja 3 <input type="text"
	         name="3"><br>
	  Caja 4 <input type="text"
	         name="4"><br>
	  </form>


</body>
</html>
__________________
Cómo escribir

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

Una consulta como partiria por defecto con los 4 blockeados??
__________________
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 06/06/2003, 14:11
 
Fecha de Ingreso: febrero-2002
Ubicación: Santiago
Mensajes: 253
Antigüedad: 22 años, 3 meses
Puntos: 0
ponele asi a los text

<input type="text" name="1" disabled="true" >

o asi

<input type="text" name="1" readonly="true" >
  #5 (permalink)  
Antiguo 07/06/2003, 05:17
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
Exacto, es como dice Renegado (Hola Renegado!!)

Revisando el código me di cuenta de que si el que visita la página de primeras sólo quiere una caja de texto no funciona el código. Así uqe he hecho unos mínimos cambios (y he aprovechado para meter el código de Renegado) para que vaya. El resultado es:

Código PHP:
<html>
<
head>
    <
script>
    function 
pepe(total){
    for (
a=1;a<5;a++){
    eval(
"document.forms[0].elements[a].disabled=(a<=total)?false:true;")
    
    }
    }
    
</script>
    <style> form,input,select{font:normal 10px/15px verdana}</style>
</head>

<body>
<form action="javascript:alert('enviando')"
      name="formulario"
      id="formulario">

      Cajas escribibles:<select 
                              onchange="pepe(this.selectedIndex)" 
                            name="primero"
                              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="1">
            <br>
     Caja 2 <input 
                 disabled 
                type="text"
                 name="2">
            <br>
      Caja 3 <input 
                  disabled 
                type="text"
                 name="3">
            <br>
      Caja 4 <input 
                  disabled 
                type="text"
                 name="4">
            <br>

</form>


</body>
</html> 
Espero que así te funcione!

Un saludo!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 07/06/2003 a las 05:19
  #6 (permalink)  
Antiguo 12/06/2003, 15:10
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
funciona de maravillas gracias...

una ultima consultilla
que pasa si mis textfield se llaman tinta1, tinta2...........tinta4

cambia el script??
__________________
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.
  #7 (permalink)  
Antiguo 12/06/2003, 16:07
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
Hola dobled.

Por lo que veo no cambia, ya que el script de KarlanKas lo que hace es recorrerlos secuencialmente, no los referencia por su nombre.

Saludos.
  #8 (permalink)  
Antiguo 13/06/2003, 02:58
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
Gracias Kao, últimamente estoy demasiado liado!!

Es como dices!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #9 (permalink)  
Antiguo 13/06/2003, 04:15
 
Fecha de Ingreso: julio-2002
Ubicación: Elche
Mensajes: 153
Antigüedad: 21 años, 10 meses
Puntos: 0
Aunque parece que ya está resuelta la duda pongo aquí una variante:

<html>
<body>
<select onchange="ponerinputs(this.selectedIndex)" name="primero">
<option value="0">Cuantos campos quieres</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<br><br>

<script language="javascript">
function ponerinputs(total)
{
//Aquí si quieres escribes el código del select

for(i=1; i<=total; i++)
document.write("Campo " + i + " <input type='text' name='" + i + "'><br>");
}
</script>

</body>
</html>
__________________
Hazlo o no lo hagas, pero nunca lo intentes

www.clubfronteniselche.com
  #10 (permalink)  
Antiguo 13/06/2003, 05:23
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
DaneelR, tu propuesta está muy bien, pero tiene un pequeño problema, como ya me dijo hace tiempo mi querida tunait (hola leporcia!!), el document.write sirve mientras se está mostrando la página web. Una vez "montada" no se puede utilizar poruque crearía un documento nuevo con el código que se cree. Y es lo uqe pasa con tu código, que lo muestra pero como documento aparte, formado sólo por el código que creas. Te recomiendo que lo cambies por innerHTML.

Un saludo!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #11 (permalink)  
Antiguo 07/07/2003, 08:46
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 estoy usando tu codigo y anda bien, solo tengo un drama kuando lo uso al final del form y cambio el nro de opciones me cambian los text del principio del form y no los de abajo del select, hay una manera para fijar o dar el text que uno quiere comandar?
__________________
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.
  #12 (permalink)  
Antiguo 07/07/2003, 09:00
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
Cuenta en el código el número de orden que tienen los input uqe quieres modificar y el número que te salga (empieza por el cero) ponlo en el valor inicial de a en el for:
for(a=primera caja;a<primera caja+4;a++)

otra posibilidad es la siguiente, pero no podrías cambiar el name a las cajas. Bueno sí que puedes cambiarlos pero manteniendo la numeración y cambiando todas los nombres en negritas por el mismo nombre:

<html>
<head>
<script>
function pepe(total){
for (a=1;a<5;a++){
eval("document.forms[0].caja"+a+".disabled=(a<=total)?false:true;")
}
}
</script>
<style> form,input,select{font:normal 10px/15px verdana}</style>
</head>

<body>
<form action="javascript:alert('enviando')"
name="formulario"
id="formulario">

Cajas escribibles:<select
onchange="pepe(this.selectedIndex)"
name="primero"
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="caja1">
<br>
Caja 2 <input
disabled
type="text"
name="caja2">
<br>
Caja 3 <input
disabled
type="text"
name="caja3">
<br>
Caja 4 <input
disabled
type="text"
name="caja4">
<br>

</form>


</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #13 (permalink)  
Antiguo 07/07/2003, 09:09
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

Con este ejemplo puedes poner el nombre que quieras a las cajas, pero debes introducir el mismo en el array cajas:

<html>
<head>
<script>
//Puedes poner aquí tantas cajas como quieras.
//Comprueba que su nombre coincide con el name de las del formulario.
cajas=["caja1","pepita","leonor","box"]
function pepe(total){
total-=1
for (a=0;a<cajas.length;a++){
eval("document.forms[0]."+cajas[a]+".disabled=(a<=total)?false:true;")
eval("document.forms[0]."+cajas[a]+".style.background=(a<=total)?'white':'#eeeeee';" )
}
}
</script>
<style> form,select{font:normal 10px/15px verdana}input{font:normal 10px/15px verdana;background:#eeeeee;}</style>
</head>

<body>
<form action="javascript:alert('enviando')"
name="formulario"
id="formulario">

Cajas escribibles:<select
onchange="pepe(this.selectedIndex)"
name="primero"
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="caja1">
<br>
Caja 2 <input
disabled
type="text"
name="pepita">
<br>
Caja 3 <input
disabled
type="text"
name="leonor">
<br>
Caja 4 <input
disabled
type="text"
name="box">
<br>

</form>


</body>
</html>

__________________
Cómo escribir

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

use el con nombre "caja" y me quedo de pelos

Gracias

__________________
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.
  #15 (permalink)  
Antiguo 07/07/2003, 09:13
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
No hay por qué darlas!! Me alegro de que te funcione!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
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:10.