Foros del Web » Programando para Internet » Javascript »

ReadOnly para select

Estas en el tema de ReadOnly para select en el foro de Javascript en Foros del Web. Saludos. Hay alguna forma de simular ReadOnly para un select?? Me explico: si le coloco disabled el texto del select me muestra en color gris ...
  #1 (permalink)  
Antiguo 21/11/2005, 09:04
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 9 meses
Puntos: 2
Pregunta ReadOnly para select

Saludos.

Hay alguna forma de simular ReadOnly para un select??
Me explico: si le coloco disabled el texto del select me muestra en color gris y casi no se ve; hay alguna forma de que al menos uno pueda colocarle un color diferente al texto del select cuando esta disabled asi como el ReadOnly????

Agradezco la ayuda que me puedan brindar...
  #2 (permalink)  
Antiguo 21/11/2005, 17:52
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
Probá si te sirve esto:

Cita:
<select name="aa" onmouseover="this.disabled=true;" onmouseout="this.disabled=false;">
esto mas un poco de estilos, simularía bastante bien lo que querés.

Tal vez por aquía alguien tenga alguna otra solucion un poco mas elegante.

saludos
__________________
by Capitán Buscapina
.
  #3 (permalink)  
Antiguo 22/11/2005, 17:29
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 9 meses
Puntos: 2
Busqueda Me parece bien pero...

Saludos.

Probe el codigo que me facilitaste y si funciona pero sigue quedando el color del texto gris, te agradezco mucho tu ayuda.

Lo pondre asi para que hagan pruebas a ver si les gusta, ya saben como son los usuarios
  #4 (permalink)  
Antiguo 22/11/2005, 17:59
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
el por que de seguir utilizando disabled es para que no puedan cambiarlo, además deberías trabajarlo con estilos.

Otra posibilidad es que lo reemplaces por un input text (read only) mientras lo quieres poner disabled y para cuando lo habilites cambiarlo por el select
__________________
by Capitán Buscapina
.
  #5 (permalink)  
Antiguo 23/11/2005, 06:02
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 9 meses
Puntos: 2
Pregunta Estilos???

Saludos.

Apenas estoy empezando con esto de la programación Web, he trabajado con PHP y javascript; me puedes explicar que es eso de estilos y como lo podria implementar para este caso.

Agradezco la ayuda que me estas brindando.
  #6 (permalink)  
Antiguo 23/11/2005, 09:15
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 20 años, 1 mes
Puntos: 4
por ejemplo en el select que puse anteriormente puedes poner:

Cita:
<select name="aa" onmouseover="this.disabled=true;" onmouseout="this.disabled=false;" class="miestilo">
y dentro de las etiquetas HEAD pones:

Cita:
<style type="text/css">
<!--
.miestilo {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
color: #cccccc;
background-color: #CCCCCC;
border: thin solid #CCCCCC;
}
-->
</style>
De esta forma le puedes dar la apariencia que vos quieras.

Date una vueltita por el foro de CSS y vas a ver que no es para nada complejo.

saludos
__________________
by Capitán Buscapina
.
  #7 (permalink)  
Antiguo 23/11/2005, 16:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 9 meses
Puntos: 2
Muchas gracias

Estoy muy agradecido por tu ayuda.
  #8 (permalink)  
Antiguo 25/09/2008, 08:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: ReadOnly para select

Hola... de pronto esto les pueda servir para los que quieran bloquear un select mientras requieren de su valor... es muy sencillo...

Coloquen el siguiente codigo en un script en la cabecera de la página, recomiendo que tengan la libreria Prototype, ya que hace uso de esta...

Código:
// Funcion para simular la inactivacion de un control

doDisableDiv = function(dvName)
{
	var nDiv = document.createElement('div');
	nDiv.setAttribute('id', dvName + 'Disabled');
	nDiv.style.display='block';
	nDiv.style.position="absolute";
	nDiv.style.cssFloat="left";
	nDiv.style.width = $(dvName).offsetWidth +"px";
	nDiv.style.height = $(dvName).offsetHeight +"px";
	nDiv.style.top=findPosY($(dvName)) + "px";
	nDiv.style.left=findPosX($(dvName)) + "px";
	nDiv.className="inactivo";
		
	var myBody = document.getElementsByTagName('body').item(0);
	myBody.appendChild(nDiv);
}

// Funcion para simular la activacion de un control
	
doEnableDiv = function(dvName)
{
	if(document.getElementById(dvName + 'Disabled'))
	{
		var myBody = document.getElementsByTagName('body').item(0);
		myBody.removeChild(document.getElementById(dvName + 'Disabled'));
	}
}

// Funcion para determinar la posicion Real Horizontal de un objeto
	
findPosX = function(obj)
{
	var curleft = 0;
	if(obj.offsetParent){
		while(1) 
		{
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)
			break;
			obj = obj.offsetParent;
		}
	}else if(obj.x)
	curleft += obj.x;
	return curleft;
}

// Funcion para determinar la posicion Real Vertical de un objeto

findPosY = function(obj)
{
	var curtop = 0;
	if(obj.offsetParent){
		while(1)
		{
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
			break;
			obj = obj.offsetParent;
		}
	}else if(obj.y)
	curtop += obj.y;
	return curtop;
}
Despues, simplemente cuando quieran inactivar el control invocan

Código:
doDisableDiv('nombre_de_control');
Similar, cuando quieran activar de nuevo el control invocan

Código:
doEnableDiv('nombre_de_control');
Espero que les sirva esta solucion, cualquier pregunta con gusto la contesto por aqui.
  #9 (permalink)  
Antiguo 25/09/2008, 09:48
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Respuesta: ReadOnly para select

El mensaje original es de hace más de 3 años. Por favor, no reviváis temas tan antiguos.

Saludos,
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:15.