He modificado algo tu código para adaptarlo al mío, pero no funciona, he incluído también un código para que haga la búsqueda sólo por la caja de texto, o sólo por el select y por estas dos búsquedas funciona perfectamente, pero cuando busco por el texto y el select conjuntamente, me aparece el nombre buscado siempre, da igual lo que haya seleccionado en el select, es como si sólo buscara por texto.
Código Javascript
:
Ver originalfunction busqueda(){
var textoBusqueda = 'Ingresar texto de b\u00fasqueda';
var cadena=txtBuscar.value.toLowerCase();
//Esto viene de un select que creo dinámicamente utilizando el array cursos
var cadenaCursos = listaCursos.options[listaCursos.selectedIndex].value.toLowerCase();
var datosCursos = datos[i][0].toLowerCase().indexOf(cadenaCursos)>=0;
var n = datos.length;
buscarNombre = [];
for (var i=0;i<n;i++)
{
buscaren = reemplazaAcentos(datos[i][1])
txtBuscado = reemplazaAcentos(cadena)
//Para buscar utilizando la caja de texto sólo
if (buscaren.toLowerCase().indexOf(txtBuscado)>=0)
{
buscarNombre.push(datos[i]);
}
//Para buscar utilizando el select sólo
else if (datos[i][0].toLowerCase().indexOf(cadenaCat)>=0 && txtBuscar.value == textoBusqueda )
{
buscarNombre.push(datos[i]);
}
//Para hacer la búsqueda con un texto en la caja y una opcion seleccionada en el select
else if (datos[i][1] == buscaren.toLowerCase().indexOf(txtBuscado)>=0)
for(j=0;j<cursos.length;j++){
if(datosCursos == cadenaCursos && cursos[j][0]==cadenaCursos)
buscarNombre.push(datos[i]);
}
}
txtResultados.innerHTML=buscarNombre.length;
mostrarResultados(0);
}