Вот демоверсия jsFiddle моего ответа. Демо использует CoffeeScript, но вы можете преобразовать его в обычный JavaScript , если вам нужно.
Важная часть, в JavaScript:
var endIndex = textField.value.length;
if (textField.setSelectionRange) {
textField.setSelectionRange(endIndex, endIndex);
}
Я публикую этот ответ, потому что я уже написал его для кого-то, у кого был такой же вопрос. Этот ответ охватывает не столько крайних случаев, сколько основные ответы здесь, но он работает для меня и содержит демонстрацию jsFiddle, с которой можно играть.
Вот код из jsFiddle, поэтому этот ответ сохраняется, даже если jsFiddle исчезает:
moveCursorToEnd = (textField) ->
endIndex = textField.value.length
if textField.setSelectionRange
textField.setSelectionRange(endIndex, endIndex)
jQuery ->
$('.that-field').on 'click', ->
moveCursorToEnd(this)
<div class="field">
<label for="pressure">Blood pressure</label>:
<input class="that-field" type="text" name="pressure" id="pressure" value="24">
</div>
<p>
Try clicking in the text field. The cursor will always jump to the end.
</p>
body {
margin: 1em;
}
.field {
margin-bottom: 1em;
}