Le aplico la clase al pasar el mouse sobre el option. Para esto a cada option le pongo:
Código HTML:
Ver original<option id="option1" value="Primer dato" onmouseover="change_color('option1');" onmouseout="change_color_inv('option1')">Primer dato
</option> <option id="option2" value="Segundo dato" onmouseover="change_color('option2');" onmouseout="change_color_inv('option1')">Segundo dato
</option>
Las clases:
Código HTML:
Ver original.box311_occ {
font-family: Verdana, Geneva, sans-serif;
font-size: 12px;
color: #001146;
background-color: #FFF;
border-top: 0;
border-right: 0;
border-bottom: 0;
border-left: 0;
height: 18px;
}
.box311_occ1 {
font-family: Verdana, Geneva, sans-serif;
font-size: 12px;
color: #FFF;
background-color: #001146;
border-top: 0;
border-right: 0;
border-bottom: 0;
border-left: 0;
height: 18px;
}
Las funciones JS:
Código Javascript
:
Ver originalfunction change_color(id)
{
var mi_inp=document.getElementById(id);
mi_inp.className="box311_occ1";
document.getElementById('text_occ').value=mi_inp.value;//al pasar el mouse el option se resalta en azul por lo que da la apariencia de seleccionado, de inmediato debo colocar el valor en un input con id=text_occ
}
function change_color_inv(id)
{
var mi_inp=document.getElementById(id);
mi_inp.className="box311_occ";//le regreso el estilo que deben tener los options al no estar seleccionados
}
Todo lo anterior trabaja muy bien, mi problema viene cuando se usan las teclas arriba y abajo, porque ahí es cuando el navegador le aplica el estilo por default, mediante JavaScript detecto qué tecla ha sido pulsada y obtengo el id del option para aplicarle la clase, pero resulta que mi clase queda por debajo del estilo que le aplica el navegador. Cuando uso el mouse no hay más problemas porque realmente el option no está seleccionado. Sé que queda por debajo porque si le quito el onmouseout entonces me va dejando cada option seleccionado con la clase box311_occ1, eso a mí me indica que el input sí tomó la clase que yo le asigné al seleccionarlo pero que no la veo porque se antepone la del navegador.
Como los datos que desplego no siempre son una cantidad fija, o sea que varían desde 1 hasta miles, y voy buscando las coincidencias mientras voy tipeando en el input text_occ, mientras las va encontrando voy desplegando esos datos debajo del input dentro de un div, los datos los imprimo con AJAX, y como maximo deben verse 10 datos, entonces si la cantidad de datos excedia de 10 al select le ponía size=10, al hacer esto en IE se le veían bordes a cada option, pero si le ponía size=1 entonces era necesario darle clic(esto es lo que debo evitar) al select para que desplegara los options y entonces se veían bien.
Lo único que yo quería saber era cómo modificar el estilo por default que le asigna el navegador a los inputs, o hacer que lo ignorara porque de todas maneras yo se lo asignaba, pero al ver que los estilos no eran constantes de un navegador a otro en el select cuando el size es mayor que uno, entonces opté por hacerlo de otra manera.
Es cierto que llegué al foro hace menos de un mes, que tengo menos de 50 msjs, y que llevo poco tiempo trabajando en el desarrollo web, pero no vengo aquí a que me resuelvan mis problemas, los problemas los resuelvo yo, tenía una duda con eso, y si no puedo por ese lado entonces continuaré por otro. Este foro lo leo desde hace tiempo, y así como tú te estás hartando de aportar a que se aprenda a postear, a mí me está hartando que los "grandes" salgan con ese tipo de respuestas.
Agradezco el tiempo que se toman en responder y en tratar de ayudar, totalmente agradecida.
No he leído tus demás post,
furoya, ya tendré el tiempo y la oportunidad de hacerlo. Si por mi poca experiencia en el foro entonces eres capaz de calificarme como una persona que no merece tu cuidado, lo entiendo. Pero creo que aquí tampoco se trata de ver quién ha hecho más o quién sabe más. Ante todo la
actitud.