Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/05/2007, 06:13
Avatar de lexus
lexus
 
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Re: Escritura intuitiva

intenta con este a ver si te sirve, esta solo en javascript pero es muy facil de adaptar con una base de datos.


aunke creo yo ke seria mas eficiente y mucho mejor hacerlo con ajax.


<script language="javascript">
var to_find = "";
var timeoutCtr = 0;
var selectBox;
var txtFind;
var keycode;
function findMatch2(s, t){
timeoutCtr = new Date().getTime();
selectBox = s;
txtFind = t;
keycode = event.keyCode;
setTimeout("findMatch()", 10);
}

function findMatch() {
if (new Date().getTime() - timeoutCtr < 0) return false;
if (txtFind == '' || keycode == 16) {
return false;
}
to_find = txtFind.value
if(keycode==8) to_find = to_find.substr(0, to_find.length-1);
if(to_find.length==0){
txtFind.value='';
return false;
}
allWords = selectBox.options;
var posLow = 0;
var posHigh = allWords.length;
var foundIt = false;
s2 = to_find.toLowerCase();
while (posLow <= posHigh) {
posMid = Math.floor((posLow + posHigh) / 2);
s1 = allWords[posMid].text;
s = allWords[posMid].text.toLowerCase();
if (s.indexOf(s2) == 0){
go = true;
for (var i=posMid; i>=0; i--){
if(allWords[i].text.toLowerCase().indexOf(s2) == 0){
s1 = allWords[i].text;
s = allWords[i].text.toLowerCase();
} else {
break;
}
}
posMid = i+1;
foundIt = true;
selectBox.selectedIndex = posMid;
var t = s.length - (s.length - s2.length);
end_string = s.substr(t, s.length);
txtFind.value = s1;
if (end_string != "") {
var range = txtFind.createTextRange();
range.moveStart('character', txtFind.value.toLowerCase().lastIndexOf(end_string ));
range.select();
}
return true;
} else {
if (s2 < s) {
posHigh = posMid - 1;
} else {
posLow = posMid + 1;
}
}
}
}
function getInfo(e, obj){
if(e.selectedIndex>=1) obj.value=e[e.selectedIndex].text;
}
</script>
<form>
<select name="city" style='display:inline;width:275;position:absolute; Clip:rect(auto auto auto 257px);' onchange="getInfo(this, this.form.txtServer);">
<option value="Acampo">Acampo</option><option value="Acton">Acton</option><option value="Adelanto">Adelanto</option><option value="Adin">Adin</option><option value="Agoura Hills">Agoura Hills</option><option value="Aguanga">Aguanga</option><option value="Ahwahnee">Ahwahnee</option><option value="Alameda">Alameda</option><option value="Alamo">Alamo</option><option value="Albany">Albany</option><option value="Albion">Albion</option><option value="Alderpoint">Alderpoint</option><option value="Alhambra">Alhambra</option><option value="Aliso Viejo">Aliso Viejo</option><option value="Alleghany">Alleghany</option><option value="Alpaugh">Alpaugh</option><option value="Alpine">Alpine</option><option value="Alpine Meadows">Alpine Meadows</option><option value="Alta">Alta</option><option value="Alta Loma">Alta Loma</option><option value="Altadena">Altadena</option><option value="Altaville">Altaville</option><option value="Alturas">Alturas</option><option value="Alviso">Alviso</option><option value="Amador City">Amador City</option><option value="Amboy">Amboy</option><option value="American Canyon">American Canyon</option><option value="Anaheim">Anaheim</option><option value="Anderson">Anderson</option><option value="Angels Camp">Angels Camp</option><option value="Angelus Oaks">Angelus Oaks</option><option value="Angwin">Angwin</option><option value="Annapolis">Annapolis</option><option value="Antelope">Antelope</option><option value="Antioch">Antioch</option><option value="Anza">Anza</option><option value="Apple Valley">Apple Valley</option><option value="Applegate">Applegate</option><option value="Aptos">Aptos</option><option value="Arbuckle">Arbuckle</option><option value="Arcadia">Arcadia</option><option value="Arcata">Arcata</option><option value="Armona">Armona</option><option value="Arnold">Arnold</option><option value="Aromas">Aromas</option><option value="Arroyo Grande">Arroyo Grande</option><option value="Artesia">Artesia</option><option value="Artois">Artois</option><option value="Arvin">Arvin</option><option value="Atascadero">Atascadero</option><option value="Atherton">Atherton</option><option value="Atwater">Atwater</option><option value="Atwood">Atwood</option><option value="Auberry">Auberry</option><option value="Auburn">Auburn</option><option value="Avalon">Avalon</option><option value="Avenal">Avenal</option><option value="Avery">Avery</option>
</select>
<input name="txtServer" type="text" style='position:relative;width:260;height:21;margi n-right:15;margin-top:-1px;' value="[Select City]" onKeyPress="findMatch2(this.form.city, this);" onfocus="var range = this.createTextRange();range.moveStart('character' ,0);range.select();">
</form>
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com