Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/09/2006, 08:29
aleCcowaN
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 12
Antigüedad: 18 años, 6 meses
Puntos: 0
problema con <input type=text> + focus()

¡Hola gente!

Estoy construyendo un pequeño editor de fonética para el sitio de bien público que estoy desarrollando. Este editor va a ser usado por colaboradores, y para facilitar la escritura de transcripciones fonéticas les pongo un input field con un tecladito abajo con los signos usuales.

El código es el siguiente:

input field:

<input type="text" name="fonetus" value="/" class="prop">

cada botón de inclusión, por ejemplo para introducir "æ":

<input class="fonbot" name="1" type="button" id="1" value="&aelig;" onClick="insert('&aelig;', this)">

y la función correspondiente:

<script language="JavaScript">
<!--
function insert(charac, ojeto)
{var tanti = document.form1.fonetus;
var tach = tanti.value;
tach = tach + charac;
tanti.value = tach;
ojeto.blur();
document.form1.fonetus.focus();
return;
}
//-->
</script>

La funcionalidad es que una vez seleccionado el campo, sea usando el teclado o los botones con la fonética, el input field se mantiene siempre en foco con el cursor ubicado al final del último caracter introducido.

Con Firefox funciona aparentemente bien, pero con mi Explorer 6 si uno aprieta atropelladamente los botones a veces el foco se traslada a la primera posición del input field y no a la última, quedando entremezclado lo que uno escribe y arruinando la funcionalidad.

¿Alguien sabe a qué puede deberse este problema? ¿Existe algún agregado que pueda hacer a la función para garantizar que el cursor quede siempre al final del texto tecleado? ¿Existira (pretencioso de mí) alguna forma de registrar la posición actual del cursor dentro del input field para insertar caracteres en medio de la cadena?

Gracias por anticipado

Alec