jQueryを使用してテキストフィールドのカーソル位置をどのように設定しますか?コンテンツを含むテキストフィールドがあり、ユーザーがフィールドにフォーカスしたときにカーソルを特定のオフセットに配置する必要があります。コードは次のようになります。
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
そのsetCursorPosition関数の実装はどのようになりますか?コンテンツがabcdefgのテキストフィールドがある場合、この呼び出しにより、カーソルは次のように配置されます:abcd ** |**efg。
Javaにも同様の関数setCaretPositionがあります。javascriptにも同様の方法がありますか?
更新:次のようにjQueryで動作するようにCMSのコードを変更しました。
new function($) {
$.fn.setCursorPosition = function(pos) {
if (this.setSelectionRange) {
this.setSelectionRange(pos, pos);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
if(pos < 0) {
pos = $(this).val().length + pos;
}
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
}(jQuery);