Définissez la mise au point et le curseur à la fin du champ de saisie de texte / chaîne w. Jquery

J'ai la fonction suivante qui ajoute un sélecteur à une entrée de recherche comme une option avancée, tout comme la pile de débordement de recherche avancée.

Lorsque vous cliquez sur ce que vous recherchez, il ajoute un préfixe. Voir Jquery ci-dessous:

<script> $(document).ready(function () { $("table#advanced_search_options tr").click(function () { var SearchSelection = $(this).children("td:last-of-type").html(); var SearchInput = $('#Search'); SearchInput.val(SearchInput.val() + SearchSelection); return false; alert(SearchSelection); }); }); </script> 

Comment puis-je manipuler ce qui précède pour apporter également l'accent sur l'entrée #search, en plaçant la carotte (le curseur d'insertion de texte clignotant) à la fin du texte / valeur inséré? par exemple.

HC: <- La valeur ajoutée à mon entrée de recherche, je voudrais placer le curseur ici, juste après:

Vous pouvez le faire en utilisant Input.setSelectionRange , une partie de l'API Range pour interagir avec les sélections de texte et le curseur de texte:

 var searchInput = $('#Search'); // Multiply by 2 to ensure the cursor always ends up at the end; // Opera sometimes sees a carriage return as 2 characters. var strLength = searchInput.val().length * 2; searchInput.focus(); searchInput[0].setSelectionRange(strLength, strLength); 

Demo: Fiddle