Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2011, 12:30
Avatar de Dani_1270
Dani_1270
 
Fecha de Ingreso: noviembre-2009
Ubicación: España
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta Como buscar nombre aproximado con indexOf()

Lo que yo quiero hacer es esto, tengo el siguiente codigo:

Código:
<script type="text/javascript" language="javascript">
// Carga de contactos
var searchNombre = new Array();
searchNombre[0] = "Daniel";
searchNombre[1] = "Paula";
searchNombre[2] = "Cristian";
searchNombre[3] = "Jackson";
searchNombre[4] = "David";
// y un monton mas de arrays
function busca(){
var s = document.getElementById('buscar').value;
var posicion = "-1";
posicion=searchNombre.indexOf(s);
if (searchNombre.indexOf(s) != "-1")
{document.getElementById('bfmore').innerHTML=searchNombre[posicion];}
else{document.getElementById('bfmore').innerHTML="\<p style='font-size:10pt;color:F00;'\>No se encuentra nadie\<\/p\>"}
}
</script>
Y este es el formulario en el html:

Código HTML:
<form id="formBusqueda" name="formBusqueda">
Nombre de usuario: <input type="text" id="buscar" size="30" maxlength="25" value="" onkeypress="busca()" onchange="busca()" onkeydown="busca()" onkeyup="busca()" />&nbsp;<input type="button" id="envio" value="Buscar" onclick="busca()" />
</form>
<br />
<div id="bfmore">Aqui se muestran los datos cuando los busque (si se encuentran)</div> 
Con este código consigo buscar a un usuario, siempre y cuando introduzca el nombre exacto en el array (sino devuelve -1 y el mensaje de error). Pero me gustaría, p. ejemplo, que si yo escribo en el campo de busqueda Da en vez de Daniel, aparezca también (y si por ejemplo, hubiese un array llamado David, y pones en el campo de busqueda Da, que muestre tanto el array David como el array Daniel).
No se si me habré explicado bien :S

¿Alguna ayudita?