¿Hay alguna manera de colocar el cursor al final en una etiqueta TEXTAREA? Estoy usando Firefox 3.6 y no lo necesito para trabajar en IE o Chrome. JavaScript está bien pero parece que todas las respuestas relacionadas aquí usan el evento onfocus(), que parece ser inútil porque cuando el usuario hace clic en cualquier lugar dentro de textarea, Firefox establece la posición del cursor allí. Tengo un texto largo para mostrar en un área de texto para que muestre la última parte (lo que facilita añadir algo al final).¿Cómo colocar el cursor al final en un TEXTAREA? (al no usar jQuery)
5
A
Respuesta
9
Puede haber muchas formas, por ej.
element.focus();
element.setSelectionRange(element.value.length,element.value.length);
1
var t = /* get textbox element */ ;
t.onfocus = function() {
t.scrollTop = t.scrollHeight;
setTimeout(function(){
t.select();
t.selectionStart = t.selectionEnd;
}, 10);
}
El truco es usar el setTimeout para cambiar la inserción de texto (quilates) Posición después de que el navegador se hace el manejo del evento de foco; de lo contrario, nuestro script establecería la posición y el navegador la establecería de inmediato en otra cosa.
5
Ha sido un largo tiempo desde que utiliza javascript sin antes mirar a una solución de jQuery ...
Dicho esto, el mejor enfoque usando javascript sería para agarrar el valor actualmente en el área de texto cuando se enfoca y establece el valor del área de texto al valor capturado. Esto siempre funciona en jQuery como:
$('textarea').focus(function() {
var theVal = $(this).val();
$(this).val(theVal);
});
en JavaScript claro:
var theArea = document.getElementByName('[textareaname]');
theArea.onFocus = function(){
var theVal = theArea.value;
theArea.value = theVal;
}
podría estar equivocado. Un poco oxidado
3
Aquí es una función para la que
function moveCaretToEnd(el) {
if (typeof el.selectionStart == "number") {
el.selectionStart = el.selectionEnd = el.value.length;
} else if (typeof el.createTextRange != "undefined") {
el.focus();
var range = el.createTextRange();
range.collapse(false);
range.select();
}
}
2
textarea.focus()
textarea.value+=' ';//adds a space at the end, scrolls it into view
1
(this.jQuery || this.Zepto).fn.focusEnd = function() {
return this.each(function() {
var val = this.value;
this.focus();
this.value = '';
this.value = val;
});
};
Cuestiones relacionadas
- 1. jQuery Textbox Cursor al final del texto?
- 2. Cómo llegar al final de la TextArea
- 3. ¿Cómo fuerzo el cursor al final de un NSTextField?
- 4. Mover el cursor al final de EditText?
- 5. jquery cómo cambiar solo un elemento principal al colocar el cursor sobre el elemento
- 6. Colocar el cursor al inicio/fin del documento de Word
- 7. Activar JMenuBar al colocar el cursor sobre el elemento
- 8. Mostrar texto al colocar el cursor sobre una imagen
- 9. jquery tooltip, pero al hacer clic en lugar de colocar el cursor
- 10. Contenteditable DIV: cómo puedo determinar si el cursor está al principio o al final del contenido
- 11. ¿Qué significa colocar \ al final de una línea en python?
- 12. Disparador Haga clic en el cuadro de selección al colocar el cursor sobre el elemento
- 13. jQuery reemplazar el texto del elemento al pasar el cursor
- 14. Cambiar el color de un botón al colocar el cursor sobre ella en xaml
- 15. ¿Cómo cambiar el cursor del puntero al dedo usando jQuery?
- 16. ¿En qué elemento está el cursor al mouseleave() con jQuery?
- 17. Mostrar un ícono "cerrar" al colocar el cursor sobre el elemento
- 18. ¿Cómo mover al primer niño al final?
- 19. Mantener el cursor en TextArea cuando no se puede editar
- 20. Al usar el complemento jQuery DataTables, ¿agrega fnAddData() filas al principio o al final de una tabla html?
- 21. jQuery get textarea text
- 22. ¿Cómo colocar el cursor en cierto cuadro Editar texto?
- 23. Posicionamiento del cursor al ingresar al modo de inserción
- 24. Javascript: Mover cursor al último carácter
- 25. jQuery anexar al final de la lista
- 26. ¿Debo usar glDeleteTextures() al final del programa?
- 27. Un extraño problema al usar jquery en IE6
- 28. Mover el cursor al comienzo de UITextField
- 29. Borrar desde el cursor al final del paréntesis (etc.) en vim
- 30. jQuery, Mouseleave no se activó en el contenedor al mover el cursor rápidamente
me gusta esta solución porque está a sólo 2 líneas de código, pero yo creo que es un trabajo más intensivo que la solución Starx . –