2011-05-10 86 views
8

Estoy tratando de usar jQuery para reemplazar básicamente el cursor al final del texto en un cuadro de texto DESPUÉS de que el usuario presione "enter"jQuery Textbox Cursor al final del texto?

Tengo la parte "enter" funcionando, pero no tengo idea de cómo [ después de la parte de entrada] - ¿Puedo hacer que el cursor vuelva al final del texto ingresado dentro del cuadro de texto?

es decir, en este momento, cuando el usuario golpea Enter - el cursor pasa a una nueva línea y yo quiero que vaya básicamente al final del texto actual?

Algunos código:

jQuery('#textbox').keyup(function (e) { 
     if (e.keyCode == 13) { 
      ... submits textbox 
     } 
     jQuery(this).focus(function() { 
      var val = this.input.value; //store the value of the element 
      this.input.value = ''; //clear the value of the element 
      this.input.value = val; //set that value back. 
     )};  
}); 
+0

¿Tiene un enlace o algunas muestras que podemos ver? Mi primera suposición sería alguna forma de prevenir el incumplimiento, pero no estoy seguro. – sdleihssirhc

+0

encontré esto - http://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element - pero no estoy seguro de que ayude? – Tom

+0

Quise decir algo que * has * hecho. Tu pregunta hace que parezca que has escrito un código real. ¿Podemos ver * ese *? – sdleihssirhc

Respuesta

6

Si lo que desea es evitar que la tecla 'enter' de la creación de una nueva línea, puede utilizar preventDefault para bloquearlo.

$("textarea").keypress(function (event) { 
    if (event.which == '13') { 
     event.preventDefault(); 
    } 
}); 

fiddle

Si realmente quiere entrar presionado cualquier lugar en la entrada para ir al final de la entrada, también puede restablecer el valor que siempre poner el cursor al final de la entrada:

$("textarea").keypress(function (event) { 
    if (event.which == '13') { 
     var val = $(this).val();  
     $(this).val(''); 
     $(this).val(val); 
     event.preventDefault(); 
    } 
}); 
+0

hey dave - genial gracias esto funciona :) Creo que solo el preventDefault(); está bien para mí, pero +1 para agregar el segundo también. – Tom

Cuestiones relacionadas