Foros del Web » Programando para Internet » Javascript »

desactivar un select en IE (no las options)

Estas en el tema de desactivar un select en IE (no las options) en el foro de Javascript en Foros del Web. Buenas, tengo un problema con un control <select> que tengo en mi web, y necesito que se active o desactive según lo que elija en ...
  #1 (permalink)  
Antiguo 22/08/2008, 06:08
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
desactivar un select en IE (no las options)

Buenas, tengo un problema con un control <select> que tengo en mi web, y necesito que se active o desactive según lo que elija en otro <select> anterior.

Esto lo hago con

document.getElementById('slcIdioma').disabled = true;

que en FF me funciona perfectamente, tanto si pongo disabled = true, como disabled = 'disabled', o accediendo con document.forms... pero en IE ninguna de esas soluciones me vale. De hecho, creo que no me reconoce ni siquiera el evento onchange que tengo en el primer <select>.

<select class="select" id="slcModelos" runat="server" onchange="javascript:funcion_que_activa_el_otro_se lect();"></select>

Llevo toda la mañana buscando una solución para esto, pero todo lo que he encontrado en internet es para desactivar las <options>, y eso no me sirve.

¿Hay alguien que haya tenido este problema y sepa resolverlo?

Gracias por adelantado.

Salu2
  #2 (permalink)  
Antiguo 22/08/2008, 07:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: desactivar un select en IE (no las options)

Yo lo probé en IE7 y funciona perfectamente. ¿Puedes poner el código tal cual lo tienes?.

P.S: No necesitas poner "javascript:" al comienzo, es redundante.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/08/2008, 01:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: desactivar un select en IE (no las options)

hola, claro, aquí está el código:

<select class="select" id="slcModelos" runat="server" onchange="javascript:ActivaSelectIdioma();"></select>

<select class="select" id="slcIdioma" name="slcIdioma">
<option value="es">Español</option>
<option value="en">Inglés</option>
<option value="fr">Francés</option>
<option value="de">Alemán</option>
<option value="it">Italiano</option>
<option value="pt">Portugués</option>
</select>

<script type="text/javascript" language="javascript">
function ActivaSelectIdioma()
{
if(SelectedItemValue('ctl00_ctl00_ctl00_ContentPla ceHolder1_ContentPlaceHolder2_ContentPlaceHolder2_ slcModelos')=='JAV')
{
document.getElementById('slcIdioma').disabled = true;
}
else
{
document.getElementById('slcIdioma').disabled = true;
}
}
</script>

SelectedItemValue es una función que devuelve el value del item seleccionado, pasándole el id del select como parámetro:

function SelectedItemValue(sel)
{
var selectId = sel;
var Index = document.getElementById(selectId).selectedIndex;
var retOptSel = document.getElementById(selectId).options[Index].value;

return retOptSel;
}


Perdón por tardar en responder, y muchas gracias
  #4 (permalink)  
Antiguo 25/08/2008, 01:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: desactivar un select en IE (no las options)

Hola:

¿Te has fijado si hay algún error... ?

El parámetro que recibe SelectedItemValue() no parece coincidir con el que debes usar...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 25/08/2008, 02:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: desactivar un select en IE (no las options)

no sé a qué te refieres... el parámetro que recibe SelectedItemValue es una cadena de texto con el id del control <select> del que tiene que devolver el value. Con el depurador js de firefox tengo un punto de parada en la línea de la llamada a la función y el valor que devuelve es correcto. Si no, supongo que en firefox tampoco funcionaría...

Si te refieres a que el id que le paso está mal, es así porque el <select> "slcModelos" es runat = server (por si no lo has visto), con lo que en servidor añade toda esa cadena antes del id.

Por cierto, he visto un error en el código que escribí aquí, donde pone

if(SelectedItemValue('ctl00_ctl00_ctl00_ContentPla ceHolder1_ContentPlaceHolder2_ContentPlaceHolder2_ slcModelos')=='JAV')
{
document.getElementById('slcIdioma').disabled = true;
}

en realidad es

if(SelectedItemValue('ctl00_ctl00_ctl00_ContentPla ceHolder1_ContentPlaceHolder2_ContentPlaceHolder2_ slcModelos')=='JAV')
{
document.getElementById('slcIdioma').disabled = false;
}

pero ese error se me escapó al pegar aquí la función, en mi código lo tengo bien (disabled = false).


Salu2
  #6 (permalink)  
Antiguo 25/08/2008, 03:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: desactivar un select en IE (no las options)

Hola:

La verdad es que runat no es un atributo estandar... y por ahí he visto que es para asp.net (creo)... pero no has contestado mi pregunta... si no funciona en ie, donde debes buscar si hay error es en ie (esquina inferior izquierda del navegador).

Por cierto cuando manejas eventos es redundante poner "javascript:"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 25/08/2008, 03:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: desactivar un select en IE (no las options)

ah, perdona. No, en ie no muestra ningún error.

efectivamente, el runat=server es para poder acceder al control <select> en el lado del servidor, con asp.net

oki, tomo nota de la redundancia , la verdad es que con javascript me estoy empezando a poner ahora, así que supongo que haré bastantes cosas mal.
  #8 (permalink)  
Antiguo 27/08/2008, 02:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: desactivar un select en IE (no las options)

ya he descubierto el error. Era un error que venía de atrás, de una función que recarga el combo (al seleccionar una marca recarga el combo de los modelos):

function ReloadSelect(val, sel)
{
var origVal = val;
var destSel = sel;
var objSel = innerOfferSel[origVal];

if (navigator.appName == "Netscape")
document.getElementById(destSel).innerHTML = objSel;

else document.getElementById(destSel).outerHTML = "<SELECT id="+sel+" class=\"select\">"+objSel+"</SELECT>";

}

en el outerHTML, que es el que hace cuando accedes con IE, vuelve a crear el combo y no le incluye el "onchange='ActivaSelectIdioma();". He añadido esto y ya funciona correctamente.


Salu2
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 22:21.